国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 靖边县| 开远市| 杭州市| 比如县| 建昌县| 额尔古纳市| 信阳市| 临澧县| 南城县| 昔阳县| 镇远县| 莱西市| 乐亭县| 陇南市| 招远市| 石屏县| 白沙| 偏关县| 甘洛县| 南召县| 扶绥县| 江油市| 龙门县| 驻马店市| 德庆县| 塔河县| 甘德县| 沾化县| 汾阳市| 扶风县| 滨州市| 金沙县| 札达县| 临潭县| 磴口县| 漳州市| 孝昌县| 广昌县| 肇源县| 呼图壁县| 新竹市|