Laravel 5.4跨域问题的解决

/ 0评 / 0

前面在学习Vue js,会发现Vue的程序其实是单独作为一个客户端来用的,但是这样会遇到一个问题:跨域访问资源问题,跨域访问需要浏览器和服务器同时支持,目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。既然如此我们只需要解决服务端的支持就可以了,我这里的服务端是用的Laravel做的简单接口,只需要在响应头中加入下列信息就可以支持了:

'Access-Control-Allow-Origin: *'

我这里使用了别人做好的中间件 laravel-cors,可以使用 composer 安装

//执行命令
composer require barryvdh/laravel-cors
//或者在 composer.json 的 require 中添加下面的依赖 然后执行 composer update
"barryvdh/laravel-cors": "^0.9.2",

然后在 config 下的 app.php 的 providers 配置中添加下列配置,引入所需的类

\Barryvdh\Cors\ServiceProvider::class,

在 app->Http 中的 Kernel.php 中添加下列代码,引入中间件

 protected $middleware = [
        \Barryvdh\Cors\HandleCors::class,
    ];

 protected $middlewareGroups = [
        'api' => [
            'throttle:60,1',
            'bindings',
            'cors',
        ],
    ];

 protected $routeMiddleware = [
        'cors' => \Barryvdh\Cors\HandleCors::class,
    ];

这样我们就可以使用以下形式的路由进行跨域访问了

Route::get('/todos', function (){
	return response()->json([
		['id' => 1, 'title' => '学习学习', 'completed' => false],
		['id' => 2, 'title' => '继续学习', 'completed' => false],
	]);
})->middleware('cors:api');

评论已关闭。