Angular 和 Laravel 授权标头 CORS 错误

Posted

技术标签:

【中文标题】Angular 和 Laravel 授权标头 CORS 错误【英文标题】:Angular and Laravel authorization header CORS error 【发布时间】:2020-01-05 16:53:18 【问题描述】:

我在 Angular 中有一个拦截器,用于将 Angular 发送到 Laravel CORS

let headers = new HttpHeaders(
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept': 'application/x-www-form-urlencoded',
    'Authorization': localStorage.getItem('token'),

);
let reqClone = req.clone(
    headers: headers
);

在 Laravel 的中间件中

return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Credentials', 'true')
            ->header('Access-Control-Allow-Methods', 'GET, HEAD, OPTIONS, POST, PUT')
            ->header('Access-Control-Max-Age', '3600')
            ->header('Access-Control-Allow-Headers', 'Origin, Accept, Content-Type, X-Requested-With');

我尝试访问

$request->header('authorization') // Laravel

但我收到与 CORS 相关的错误

来自原点“http://localhost:4200”已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头

【问题讨论】:

您需要将授权添加到您的 Allow-Headers.. 你可以看看例子,好吗?它放在哪里。 抱歉,在移动端。 ->header('Access-Control-Allow-Headers', 'Origin, Accept, Content-Type, X-Requested-With', 'Authorization'); 我会试试的,谢谢你的帮助 【参考方案1】:

尝试使用laravel-cors 插件。我认为这可以解决问题。

【讨论】:

以上是关于Angular 和 Laravel 授权标头 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel API cors-预检响应中的Access-Control-Allow-Headers不允许请求标头字段授权[重复]

Angular 2:获取授权标头

如何在 Angular 5 中获取“授权”标头

如何使用 Spring Boot 和 Angular 应用程序隐藏授权标头

Angular HttpClient 阻塞授权标头

即使在设置 CORS 标头和服务器响应之后,Angular 和 laravel 的 CORS 问题[重复]