摘要:然后你就會發現前端頁面已經可以發送跨域請求了。會多出一次為的請求是正常的,因為瀏覽器要先判斷該服務器是否允許該跨域請求。
我們在用 laravel 進行開發的時候,特別是前后端完全分離的時候,由于前端項目運行在自己機器的指定端口(也可能是其他人的機器) , 例如 localhost:8000 , 而 laravel 程序又運行在另一個端口,這樣就跨域了,而由于瀏覽器的同源策略,跨域請求是非法的。其實這個問題很好解決,只需要添加一個中間件就可以了。
新建一個中間件
php artisan make:middleware EnableCrossRequestMiddleware
書寫中間件內容
server("HTTP_ORIGIN") ? $request->server("HTTP_ORIGIN") : ""; $allow_origin = [ "http://localhost:8000", ]; if (in_array($origin, $allow_origin)) { $response->header("Access-Control-Allow-Origin", $origin); $response->header("Access-Control-Allow-Headers", "Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN"); $response->header("Access-Control-Expose-Headers", "Authorization, authenticated"); $response->header("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, OPTIONS"); $response->header("Access-Control-Allow-Credentials", "true"); } return $response; } }
$allow_origin 數組變量就是你允許跨域的列表了,可自行修改。
然后在內核文件注冊該中間件
protected $middleware = [ // more AppHttpMiddlewareEnableCrossRequestMiddleware::class, ];
在 AppHttpKernel 類的 $middleware 屬性添加,這里注冊的中間件屬于全局中間件。
然后你就會發現前端頁面已經可以發送跨域請求了。
會多出一次 method 為 options 的請求是正常的,因為瀏覽器要先判斷該服務器是否允許該跨域請求。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25979.html
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務器,發出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態的,并且會應用中間件組。 關于作者 程序開發人員,不拘泥于語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud混合式開發。合適和夠用是最完美的追求。 個人網站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務器,發出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態的,并且會應用中間件組。 關于作者 程序開發人員,不拘泥于語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud混合式開發。合適和夠用是最完美的追求。 個人網站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務器,發出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態的,并且會應用中間件組。 關于作者 程序開發人員,不拘泥于語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud混合式開發。合適和夠用是最完美的追求。 個人網站:http://www.linganm...
摘要:而我的新輪子也并不是專門解決它的問題的,而是順便解決而已。概述這個包,支持在所有的項目中使用。一旦出現成員,代表允許全部。列出允許跨域請求的方法列表,默認是代表所有方法。信息地址嗯,新輪子,求一波。 showImg(https://segmentfault.com/img/bV5VxN?w=844&h=656); 是的,可能了解 Laravel 的都知道,在 Laravel 中簡單的設...
閱讀 1075·2021-11-22 14:56
閱讀 1519·2019-08-30 15:55
閱讀 3358·2019-08-30 15:45
閱讀 1654·2019-08-30 13:03
閱讀 2868·2019-08-29 18:47
閱讀 3333·2019-08-29 11:09
閱讀 2640·2019-08-26 18:36
閱讀 2614·2019-08-26 13:55