中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel怎么跨域

發布時間:2020-12-31 11:19:15 來源:億速云 閱讀:164 作者:小新 欄目:編程語言

小編給大家分享一下laravel怎么跨域,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

                                                       我們在用 laravel 進行開發的時候,特別是前后端完全分離的時候,由于前端項目運行在自己機器的指定端口(也可能是其他人的機器) , 例如 localhost:8000 , 而 laravel 程序又運行在另一個端口,這樣就跨域了,而由于瀏覽器的同源策略,跨域請求是非法的。其實這個問題很好解決,只需要添加一個中間件就可以了。

1.新建一個中間件

php artisan make:middleware EnableCrossRequestMiddleware

2.書寫中間件內容

<?php
namespace 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 的請求是正常的,因為瀏覽器要先判斷該服務器是否允許該跨域請求。

看完了這篇文章,相信你對“laravel怎么跨域”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑川县| 嘉义市| 瑞丽市| 成都市| 南宫市| 定州市| 灯塔市| 宜兰市| 健康| 乐业县| 永寿县| 镇远县| 全州县| 奉贤区| 闻喜县| 定边县| 项城市| 保亭| 扬州市| 乌什县| 潍坊市| 高陵县| 汶上县| 柞水县| 佛学| 昌平区| 明光市| 荣昌县| 平凉市| 夹江县| 丽江市| 云阳县| 浦城县| 三门县| 广宗县| 灵台县| 新宁县| 库伦旗| 江达县| 五大连池市| 乐都县|