上下文
使用Safari(IOS和MacOS)通过HTTPS(两者一起)使用Authorization标头的XHR请求不会到达服务器。但它适用于IE,Chrome和Firefox。
我使用由Letsencrypt生成的有效证书,浏览器不会显示有关它的警告。
在Safari的Web检查器上,这些XHR尝试获取结果直到超时并且不显示错误。
我有一个域名,没有子域名。
测试
码
我使用拦截器来设置授权头。
this.request = (config) => {
config.headers = config.headers || {};
var authData = localStorageService.get('authorizationData');
if (authData && config.url && !config.url.endsWith("/token")) {
config.headers = {
"Authorization": 'Bearer ' + authData.access_token
};
config.withCredentials = true;
}
return config;
}
有谁遇到过同样的问题?
更新1
Safari + HTTPS +“授权”标题有问题。如果我通过“MyHeader”重命名“Authorization”,并在服务器上进行一些修改以使用“MyHeader”令牌检索我的持有者令牌,那么一切都运行良好。
在“safari”中使用HTTPS,“授权”标题是受保护的单词吗?
我也遇到过类似的safari问题,其中标题中的'Authorization'没有在GET请求中发送,但结果却很简单。
我只是在请求URL的末尾添加了一个'/',它对我有用。
例如:将URL从'/ token'更改为'/ token /'。
当通过safari进行的HTTP请求被发送到任何url包含像login
,token
等的单词... safari自动添加Accept-Encoding
标头,brokes al
要解决这个问题,您需要访问运行代码的设备并更改阻止跨站点跟踪的Safari设置,这对我来说很好。