【发布时间】:2019-05-06 21:08:13
【问题描述】:
我用 vuejs 创建了一个 laravel 项目。我想从另一台服务器获取 data.js 文件但没有得到它。当我运行项目时,控制台中出现以下错误
预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 X-CSRF-TOKEN。
我试图解决它,但没有得到解决方案。这是我的代码:
cors.php
public function handle($request, Closure $next)
{
//return $next($request);
header("Access-Control-Allow-Origin: *");
// ALLOW OPTIONS METHOD
$headers = [
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'Content-Type, X-CSRF-TOKEN, X-Auth-Token, Origin'
];
if($request->getMethod() == "OPTIONS") {
// The client-side application can set only headers allowed in Access-Control-Allow-Headers
return Response::make('OK', 200, $headers);
}
$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
}
bootstrap.js
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-
csrf-token');
}
我也在元标记中获得 X-CSRF-Token。如何允许这个 x-CSRF-token?如果有人需要更多信息,请告诉我。任何帮助将不胜感激。 谢谢!
【问题讨论】: