kyle 2 years ago
parent
commit
efc3c91289
4 changed files with 82 additions and 1 deletions
  1. 1
    0
      app/Http/Kernel.php
  2. 21
    0
      app/Http/Middleware/Cors.php
  3. 59
    0
      public/testapi/testapi.html
  4. 1
    1
      routes/web.php

+ 1
- 0
app/Http/Kernel.php View File

@@ -56,5 +56,6 @@ class Kernel extends HttpKernel
56 56
         'can' => \Illuminate\Auth\Middleware\Authorize::class,
57 57
         'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
58 58
         'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
59
+        'cors' => \App\Http\Middleware\Cors::class,
59 60
     ];
60 61
 }

+ 21
- 0
app/Http/Middleware/Cors.php View File

@@ -0,0 +1,21 @@
1
+<?php
2
+
3
+namespace App\Http\Middleware;
4
+
5
+use Closure;
6
+
7
+class Cors
8
+{
9
+    /**
10
+     * Handle an incoming request.
11
+     *
12
+     * @param  \Illuminate\Http\Request  $request
13
+     * @param  \Closure  $next
14
+     * @return mixed
15
+     */
16
+    public function handle($request, Closure $next)
17
+    {
18
+        return $next($request)
19
+        ->header('Access-Control-Allow-Origin','*');
20
+    }
21
+}

+ 59
- 0
public/testapi/testapi.html View File

@@ -0,0 +1,59 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+
4
+<head>
5
+    <title>Test</title>
6
+    <meta charset="utf-8">
7
+    <meta name="viewport" content="width=device-width, initial-scale=1">
8
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
9
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
10
+    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
11
+    <script src="https://malsup.github.io/jquery.blockUI.js"></script>
12
+</head>
13
+
14
+<body>
15
+<div class="container">
16
+    <h2>Test</h2>
17
+    <form>
18
+        <button>Send</button>
19
+    </form>
20
+    <hr>
21
+    <div class="output"></div>
22
+</div>
23
+<div class="spinner-border" role="status" style="display: none">
24
+    <span class="sr-only">Loading...</span>
25
+</div>
26
+
27
+<script>
28
+    $(document).ready(function () {
29
+        $("button").click(function (e) {
30
+            e.preventDefault();
31
+
32
+            $.blockUI({
33
+                message: $('.spinner-border'),
34
+                css: {
35
+                    backgroundColor: 'transparent',
36
+                    border: '0'
37
+                },
38
+            });
39
+
40
+            $.ajax({
41
+                type: "get",
42
+                url: 'https://declare.taiwanpay.com.tw/api2021/info/Uogilvy00000000000000000000020001',
43
+                dataType: "json",
44
+                contentType: "application/json;charset=utf-8"
45
+            }).done(function (result) {
46
+                console.log(result)
47
+
48
+            }).fail(function (jqXHR, textStatus) {
49
+                console.log(jqXHR);
50
+                console.log(textStatus);
51
+            }).always(function () {
52
+                $.unblockUI();
53
+            });
54
+        });
55
+    });
56
+</script>
57
+</body>
58
+
59
+</html>

+ 1
- 1
routes/web.php View File

@@ -6,7 +6,7 @@ Route::get('/', function () {
6 6
 });
7 7
 
8 8
 // API
9
-Route::group(['prefix' => 'api2021', 'namespace' => 'Web'], function () {
9
+Route::group(['middleware' => 'cors', 'prefix' => 'api2021', 'namespace' => 'Web'], function () {
10 10
     // 申報系統(已廢棄)
11 11
     Route::get('/getinfo/{hash}', 'Api2021Controller@getinfo');
12 12
     Route::post('/saveimg/{hash}', 'Api2021Controller@saveimg');