前面在学习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');