hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP框架 - Laravel - 正文 请牢记本站网址www.sosophp.cn

laravel 跨域解决方案【laravel框架】,laravel

2019-11-29Laravel搜搜PHP网51°c
A+ A-
我们在用 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相干技术文章,请接见Laravel框架入门教程栏目举行进修!

以上就是laravel 跨域处理方案的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
laravel 跨域解决方案【laravel框架】,laravel

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: