摘要:然后你就會發(fā)現(xiàn)前端頁面已經(jīng)可以發(fā)送跨域請求了。會多出一次為的請求是正常的,因為瀏覽器要先判斷該服務(wù)器是否允許該跨域請求。
我們在用 laravel 進行開發(fā)的時候,特別是前后端完全分離的時候,由于前端項目運行在自己機器的指定端口(也可能是其他人的機器) , 例如 localhost:8000 , 而 laravel 程序又運行在另一個端口,這樣就跨域了,而由于瀏覽器的同源策略,跨域請求是非法的。其實這個問題很好解決,只需要添加一個中間件就可以了。
新建一個中間件
php artisan make:middleware EnableCrossRequestMiddleware
書寫中間件內(nèi)容
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 數(shù)組變量就是你允許跨域的列表了,可自行修改。
然后在內(nèi)核文件注冊該中間件
protected $middleware = [ // more AppHttpMiddlewareEnableCrossRequestMiddleware::class, ];
在 AppHttpKernel 類的 $middleware 屬性添加,這里注冊的中間件屬于全局中間件。
然后你就會發(fā)現(xiàn)前端頁面已經(jīng)可以發(fā)送跨域請求了。
會多出一次 method 為 options 的請求是正常的,因為瀏覽器要先判斷該服務(wù)器是否允許該跨域請求。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25979.html
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態(tài)的,并且會應(yīng)用中間件組。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個人網(wǎng)站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態(tài)的,并且會應(yīng)用中間件組。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個人網(wǎng)站:http://www.linganm...
摘要:合適和夠用是最完美的追求。比如從頁面去請求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態(tài)的,并且會應(yīng)用中間件組。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個人網(wǎng)站:http://www.linganm...
摘要:而我的新輪子也并不是專門解決它的問題的,而是順便解決而已。概述這個包,支持在所有的項目中使用。一旦出現(xiàn)成員,代表允許全部。列出允許跨域請求的方法列表,默認是代表所有方法。信息地址嗯,新輪子,求一波。 showImg(https://segmentfault.com/img/bV5VxN?w=844&h=656); 是的,可能了解 Laravel 的都知道,在 Laravel 中簡單的設(shè)...
閱讀 1112·2021-11-22 14:56
閱讀 1575·2019-08-30 15:55
閱讀 3408·2019-08-30 15:45
閱讀 1681·2019-08-30 13:03
閱讀 2896·2019-08-29 18:47
閱讀 3366·2019-08-29 11:09
閱讀 2670·2019-08-26 18:36
閱讀 2640·2019-08-26 13:55