国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

laravel開發中跨域的解決方案

2024-05-05 00:00:49
字體:
來源:轉載
供稿:網友

前言

眾所周知我們大家在用 laravel 進行開發的時候,特別是前后端完全分離的時候,由于前端項目運行在自己機器的指定端口(也可能是其他人的機器) , 例如 localhost:8000 , 而 laravel 程序又運行在另一個端口,這樣就跨域了,而由于瀏覽器的同源策略,跨域請求是非法的。其實這個問題很好解決,只需要添加一個中間件就可以了。下面話不多說了,來隨著小編一起看看詳細的解決方案吧。

解決方案:

1、新建一個中間件

php artisan make:middleware EnableCrossRequestMiddleware

2、書寫中間件內容

<?phpnamespace App/Http/Middleware;use Closure;class EnableCrossRequestMiddleware{ /** * Handle an incoming request. * * @param /Illuminate/Http/Request $request * @param /Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); $origin = $request->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 數組變量就是你允許跨域的列表了,可自行修改。

3、然后在內核文件注冊該中間件

 protected $middleware = [ // more App/Http/Middleware/EnableCrossRequestMiddleware::class, ];

在 App/Http/Kernel 類的 $middleware 屬性添加,這里注冊的中間件屬于全局中間件。
然后你就會發現前端頁面已經可以發送跨域請求了。

會多出一次 method 為 options 的請求是正常的,因為瀏覽器要先判斷該服務器是否允許該跨域請求。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 浙江省| 额济纳旗| 修水县| 阳江市| 东乌珠穆沁旗| 凭祥市| 德保县| 淮安市| 城固县| 开阳县| 虎林市| 菏泽市| 盱眙县| 峨山| 甘德县| 阜阳市| 瑞丽市| 嘉禾县| 嘉峪关市| 连平县| 海安县| 华池县| 米泉市| 渝中区| 拜城县| 宜黄县| 如东县| 台东市| 历史| 平陆县| 新昌县| 琼结县| 芮城县| 家居| 乌拉特前旗| 专栏| 陵水| 中阳县| 台中县| 三明市| 开江县|