我有一个项目,当我运行php artisan serve时,在浏览器中显示一个错误:
Failed to load http://127.0.0.1:8000/api/news/get-news-list: Request header field X-CSRF-TOKEN is not allowed by Access-Control-Allow-Headers in preflight response.
我的代码如下:
axios.get(domainName+'/api/news/get-news-list').then(response=>{
news = response.data.list;
}).catch(function (error) {
console.log(error);
});
我已经添加了如下中间件:
Kernel.php
protected $middleware = [
\App\Http\Middleware\Cors::class
];
protected $routeMiddleware = [
'cors' => \App\Http\Middleware\Cors::class
];
Cors.php
public function handle($request, Closure $next)
{
return $next($request)
->header('Access-Control-Allow-Origin','*')
->header('Access-Control-Allow-Methods','GET,POST,PUT,PATCH,DELETE,OPTIONS')
->header('Access-Control-Allow-Headers','Content-Type,Authorization');
}
api.php
Route::prefix('news')->group(function () {
Route::get('get-news-list', 'API\NewsController@getList')->middleware('cors');
});
有人能告诉我如何解决这个问题吗?
发布于 2018-08-13 18:16:49
只需将x-csrf-token
标头添加到允许的列表。在本例中,它在头文件Access-Control-Allow-Headers
的Cors.php
文件中。
Access-Control-Allow-Headers
控制CORS请求中允许哪些头部。
https://stackoverflow.com/questions/51819968
复制相似问题