????? ???? Laravel?? CORS(?? ?? ??? ??)? ???? ??
Nov 02, 2023 pm 01:57 PM????? ???? Laravel?? CORS(Cross-Origin Resource Sharing)? ???? ??
??:
CORS(Cross-Origin Resource Sharing)? ? ??????? ?? ??? ???? ??? ? ??? ?? ? ???? ???? ???????. ?? ???. ?? ???? PHP ?????? Laravel? ????? ???? ??? ? ??? ?????? CORS? ???? ??? ??? ?????.
? ???? ???? ??, ??? ??? ?? ? ?? ?? ??, ???? ?? ?? ?? ? ????? ???? Laravel?? CORS? ???? ??? ?????.
1??: CORS ???? ??
?? CORS? ??? ????? ???? ???. ? ???? ??? ????? ????? ?? ??? ?????:
php artisan make:middleware CorsMiddleware
? ??? app/Http/Middleware
???? CorsMiddleware? ?? ??? ?????. .php
??. app/Http/Middleware
目錄下生成一個(gè)名為CorsMiddleware.php
的文件。
打開(kāi)CorsMiddleware.php
文件,修改handle
方法如下:
public function handle($request, Closure $next) { $response = $next($request); $response->header('Access-Control-Allow-Origin', '*'); $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $response->header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); return $response; }
在這個(gè)中間件中,我們?cè)O(shè)置了三個(gè)響應(yīng)頭,分別是:Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
。Access-Control-Allow-Origin
允許所有源進(jìn)行跨域訪問(wèn),您也可以根據(jù)需要設(shè)置特定的域名。Access-Control-Allow-Methods
定義允許的請(qǐng)求方法,這里我們?cè)O(shè)置了常見(jiàn)的GET、POST、PUT、DELETE和OPTIONS。Access-Control-Allow-Headers
允許的請(qǐng)求頭中包含了Content-Type和Authorization。
步驟二:注冊(cè)CORS中間件
打開(kāi)app/Http/Kernel.php
文件,找到$middleware
數(shù)組,并在數(shù)組中添加以下行代碼:
protected $middleware = [ // ... AppHttpMiddlewareCorsMiddleware::class, ];
以上代碼將添加CorsMiddleware
中間件到全局中間件堆棧中,以便它可以應(yīng)用于每一個(gè)請(qǐng)求。
步驟三:使用CORS中間件
為了驗(yàn)證我們的CORS中間件是否有效,我們可以在一個(gè)API路由中使用它。在routes/api.php
文件中,添加一個(gè)GET路由,并為該路由使用CorsMiddleware
中間件:
Route::get('/test', function () { return response()->json(['message' => 'Hello World']); })->middleware('cors');
這個(gè)路由將返回一個(gè)包含"Hello World"消息的JSON響應(yīng)。
步驟四:驗(yàn)證CORS設(shè)置
現(xiàn)在我們可以使用任何支持跨域訪問(wèn)的客戶端,例如瀏覽器或REST客戶端進(jìn)行驗(yàn)證。在瀏覽器的開(kāi)發(fā)工具中,我們可以看到響應(yīng)的頭部信息。
例如,在Chrome瀏覽器上,打開(kāi)開(kāi)發(fā)者工具,切換到"Network"選項(xiàng)卡,然后訪問(wèn)我們?cè)诓襟E三中定義的路由/api/test
。在響應(yīng)頭部信息中,我們應(yīng)該看到Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Allow-Headers
CorsMiddleware.php
??? ?? handle
???? ??? ?? ?????. rrreee
? ??????? ? ?? ?? ??? ?????. ??? -Control-Allow-Origin
, Access-Control-Allow-Methods
? Access-Control-Allow-Headers
. Access-Control-Allow-Origin
? ?? ??? ??? ? ???? ???? ??? ?? ?? ??? ??? ??? ?? ????. Access-Control-Allow-Methods
? ???? ?? ??? ?????. ???? ???? GET, POST, PUT, DELETE ? OPTIONS? ?????. Access-Control-Allow-Headers
? ???? ?? ???? Content-Type ? Authorization? ?????. 2??: CORS ???? ??
app/Http/Kernel.php
??? ?? $middleware
??? ?? ?? array: ?? rrreee??? ??? CorsMiddleware
????? ?? ???? ??? ???? ?? ??? ????? ? ??? ???. ????3??: CORS ???? ?? ????CORS ????? ???? ????? API ???? ?? ??? ? ????. routes/api.php
???? GET ??? ???? ? ??? ?? CorsMiddleware
????? ?????. ??rrreee??? ??? "Hello World"? ??? ???? ?????. ???? JSON ?????. ????4??: CORS ?? ???????? ??? ?? ????? REST ????? ? ??? ? ???? ???? ?? ?????? ??? ? ????. ????? ?? ???? ?? ?? ??? ? ? ????. ?????? ?? Chrome ?????? ??? ??? ?? "????" ??? ??? ?? 3???? ??? /api/test
??? ??????. ?? ??? Access-Control-Allow-Origin
, Access-Control-Allow-Methods
? Access-Control-Allow-Headers
? ????? ???. ??> ??. ?????? ?? ????? ?? ??? ???? HTTP ??? ??? ????? ??? ?? ? ??? ???. ??????: ????????? ???? Laravel ?????? ??? ? ??? ??? ???? ?? ??? ?????. ? ????? CORS ????? ???, ????? ????, ????? ???? ??? ? ??? ???? ??? ??? ?????. ? ?? Laravel?? CORS? ???? ? ??? ??? ??? ??? ? ?? ??? ?? ??? ?????. ??? ??? ????? ???? Laravel?? CORS(?? ?? ??? ??)? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











? ????? ??? ? ??? ???? ?? ?????. ????? ?? ????? ???? ????? API ?????? ???? ?? ?? ?? ??? ??? ???? ???. ??? ????? ??? ???? ?? ????? ??? ??? ????? ??? ? ??? ???? ???. ? ??? ????? ? ?? ??? ??? ???? ??? ? ??? ???? ???. ?? ???? Go ?? ?????? ??? ??? ?? ?? ??? ???????. ??? ? ???? ?????? ? ???? ??? ??? ??? ??? ?? ????

Laravel?? ????? ???? ??? ???? ??? ??? ????? ???? ??? ??? ??? ??? ? ?? Laravel ?????? ??? ?????. ???? ?? ??, ?? ? ?? ?? ??? ????? ???? ??? ??? ?? ????. ? ????? ????? ???? Laravel?? ??? ???? ??? ???? ???? ?? ??? ?????. ?? ?? ?? ????? ???? ???. ?? ??? ???? ???? ???? ??? ? ????.

Nginx? CORS(?? ??? ??? ??) ??? ????? ????? ? ??? ?? ??? ??? ??? CORS(?? ??? ??? ??) ??? ???? ??? ?????. ? ????? ????? ?? ?? ?? ???? ?? ????? ? JavaScript ??? ??? ???? ??? ??, ???? ? ??? ??? ???? ??? ? ????. ??? ?? ????? ?? ??? ???? ?? ?? ????? ???? ???? ?? ??? ????. ?? CO? ???? ???.

Laravel? ???, ?? ???? ?? ??? ?? ? ??????? ???? ?? ?? ??? ??? ???? ?? ?? PHP ? ?????? ????????. ??? ?? ? ??? ??? ?? ?? ?? ??? ??? ? ?? ???????. ?? ???? ????? ???? ???? ?? ??? ???? ??? ?? ???????. Laravel ?????? ?? ?? Laravel ??????? ???? ???. ??? ??? ??? ? ????

ThinkPHP6 ??? ??? ?? ??: ?????? ??? ?? ?? ?? ??? ??????? ???? ??? ?? ?????? ??? ?? ?? ??? ?? ? ????? ????. ThinkPHP6 ?????? ???? ?????? ???? ???? ??????? ??? ? ??? ? ??? ???? ??? ?????. ? ????? ThinkPHP6?? ??? ? ??? ???? ??? ???? ?? ?? ??? ?????. 1. ?? ??? ???? ?????? ?? ??? ??? ? ???????? ????? ??? Ajax ? ?? ??? ?? ?? ??? ?? ?? ??? ???? ??? ?? ?????.

Laravel ????? 1. ?? ? ?? 2. HTTP ?? ? ?? ?? 4. ?? ? ???? 5. ?????? ?? ??? ?? ????? ???? ???? ??? ???? ??? ??????? ??? ?? ??? ?? ??? ? ????.

Laravel ????: ??????? ?????? ?????? ? ?? ?? ?? ? ??????? ???? ?? ??? ? ?????? ?????? ? ?? ??? ?? ??? ?????. ?? ?? ??????? ???? ??????? ???? ?? ?? ??????? ??? ???? ?? ??? ? ????. Laravel ?????? ???? ??? ?????? ?????? ? ?? ?? ??? ????, ????? ???? ??? ??? ??????? ?? ?? ????? ? ????. ?? Lar? ???? ???.

Laravel?? WeChat ??? ??? ?? ????? ???? ?? ??? ???? ??? ??? ?? ?3? ???? ???? ??? ???? ???? ? ?? ?? ?? ??? ?????. ? ? WeChat ???? ?? ?? ?? ? ? ?????. ?????? ??? ????? ???????? ??? ?? WeChat ???? ???? ??? ????? ?????. ? ???? Laravel ??????? ????? ???? WeChat ??? ?? ??? ???? ??? ???? ???? ?? ??? ?????. ?? Larav? ?????? ???? ???.
