Angular 在Chrome中发出GET请求时未添加HttpHeader

Angular 在Chrome中发出GET请求时未添加HttpHeader,angular,google-chrome,Angular,Google Chrome,我正在尝试将授权令牌附加到我的GET请求中,以获取用户列表。以下是我所做工作的清单: 我看了这个问题,其中的答案提出了几点建议,包括: 直接在请求中设置标头: let headers = new HttpHeaders().set('Authorization', 'Token fsadf423qfsadfsda'); return this.httpClient.get('https/my-url/api/users/', { headers: headers }); 在拦

我正在尝试将授权令牌附加到我的
GET
请求中,以获取用户列表。以下是我所做工作的清单:

我看了这个问题,其中的答案提出了几点建议,包括:

直接在请求中设置标头:

    let headers = new HttpHeaders().set('Authorization', 'Token fsadf423qfsadfsda');
    return this.httpClient.get('https/my-url/api/users/', { headers: headers }); 
在拦截器中克隆请求并附加标头:

    let apiUrl = environment.apiUrl;
    const headers = new HttpHeaders({ 'Authorization': 'Token fsadf423qfsadfsda' });
    const apiReq = req.clone({ headers: headers, url: `${apiUrl}${req.url}` });
    return next.handle(apiReq);
上面的最后一点实际上在Safari中有效,但在Chrome中无效。我在Safari中选择了禁用跨源限制,它成功了

在Chrome中,我已经安装了CORS Toggle扩展并运行了它,但它不起作用,从命令行运行Chrome时也不会像这样:

open -a Google\ Chrome --args --disable-web-security
这是Chrome特有的问题吗?我的版本是65.0.3325.181

编辑

请求的屏幕截图:

编辑2


这是一篇很好的文章,介绍了如何理解它的正常行为,因为它是实现的

默认情况下,飞行前请求不会发送任何自定义标头,如
授权

只有在选项请求之后执行real GET请求时,才会添加
Authorization

为了成功执行选项请求,您需要确保在服务器端正确配置CORS头


确保您阅读了浏览器的调试器消息,它们通常会告诉您哪些CORS头丢失/无效

使用承载,而不是Token@AkankshaGaur为什么?另外,它在Chrome和Safaright上都不起作用。这也没用。你是怎么检查它不起作用的?您是否确保查看的是GET请求,而不是OPTIONS请求?因此,从上面的屏幕截图来看,服务器应该具有哪些功能?从上面的屏幕截图来看,您的服务器配置不正确,因为它为OPTIONS请求返回401。OPTIONS请求应该只返回一个200 http代码,这可能是因为您的服务器检查OPTIONS请求的授权头(它不应该这样做)