前端发送请求,请求头带上
authorization
的时候,没办法接收到,报错显示貌似是跨域错误。检测登录没有问题,我分析了下,登录属于简单请求,未进行进行预检请求所以没什么问题。求思路...
cors中间件
public function handle($request, Closure $next)
{
$response = $next($request);
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Headers', 'X-Requested-With,Origin, Content-Type, Cookie, Accept,Authorization');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
$response->header('withCredentials', 'true');
return $response;
}
问题已解决,原因是:
dingo/api 组件影响了原本的请求响应
解决思路:
预检请求
已经到达了服务器,只不过被服务器断否认掉了预检请求
被否就意味着后端配置错误,所以一直在检查前后端的配置,但是都没起作用barryvdh/laravel-cors
的包,我原本想着如果我自定义的中间件不能用,只能借用它的啦。` 'middleware' => [
============================================================================
这里介绍篇文档,阮一峰的跨域资源共享 CORS 详解,对跨域讲得非常透彻
问题及答案仅作参考,希望对大家有点用^_^