angular - 为什么我在 Angular 中的不记名令牌在 Firefox 中不可见
问题描述
我的功能如下所示:
testFunctionAuth() {
const promise = new Promise((resolve, reject) => {
this.http.get(AppConfigService.settings.apiServer.rest + 'systems/all', { headers: { 'Authorization': 'Bearer eyJ...rxbwcO-w' } })
.subscribe(res => {
resolve(res);
},
err => {
console.error(err);
reject(undefined);
});
});
}
但是我得到了 401,并且在标题中,甚至缺少 Auth 令牌:
解决方案
根据 CORS 规范,在没有身份验证标头的情况下执行 OPTIONS 请求。但是,您的后端似乎验证了用户凭据,但由于标头中没有身份验证令牌,服务器返回401(未授权)。
来自https://stackoverflow.com/a/40723041:
根据 CORS规范,当执行预检请求时,用户凭据被排除在外。
(...) 使用方法 OPTIONS,并具有以下附加约束:
- (...)
- 排除作者请求标头。
- 排除用户凭据。
- (...)
(重点是我的)
考虑到这一点,问题似乎出在 API 方面,它应该接受
OPTIONS
请求而不需要身份验证。
推荐阅读
- php - 无法在 PHP 中使用 curl 从 API 获取 json 响应
- c# - C# 连接字符串到 MS Teams 上的 MS 访问文件
- php - 试图获取非对象错误的属性 - Laravel
- powershell - 读取 1 行制表符分隔数据并导出为“+”分隔时生成的空 CSV 文件
- excel - 适当的列匹配
- ssas - 为什么从 SQL 加载数据比 excel 慢得多?
- tcpdump - tcpdump 是否在未侦听的端口上捕获数据包?
- python-3.x - 为什么 python 中的 isallnum() 对包含数字“123”的字符串返回“True”
- c# - 如何根据子属性过滤父实体中的子实体?
- database - 如何使用没有热分区的 Amazon DynamoDB 为论坛建模?