コンテキストHTTPSを要求は
XHRリクエストHTTPS上Authorizationヘッダとサファリを介して動作しない(両方とも一緒に)、サファリ(IOSおよびMacOSの)を使用して、サーバに到達しません。しかし、それはIE、クローム、およびFirefoxで動作します。
私はLetsencryptによって生成された有効な証明書を使用しており、ブラウザは警告を表示しません。
SafariのWebインスペクタで、これらのXHRはタイムアウトまでエラーを表示し、エラーは表示されません。
私は1つのドメインとサブドメインを持っていません。
テスト
- Authorizationヘッダ+ HTTPS =>
- Authorizationヘッダ+なしHTTPS(HTTP)=>
- 無許可ヘッダ+ HTTPS =>作品
コード
私はインターセプターを使って認証ヘッダーを設定します。
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;
}
誰も同じ問題が発生しましたか?
UPDATE 1
サファリ+ HTTPS + "認可" ヘッダに何か問題があります。 "MyHeader"によって "Authorization"の名前を変更し、サーバー上で "MyHeader"トークンを使用してベアラトークンを取得するために何らかの修正を加えても、すべて正常に動作します。
「承認」ヘッダーは、サファリでHTTPSを使用する保護された単語ですか?
AuthorizationがSafariの保護された単語であるかどうかを判断しましたか? –
Safariで保護された単語について何も見つかりませんでした。 –
私たちは問題が何かを発見しました。安全でない証明書でSafariを使用しようとすると(Self-Signedが私たちの犯人でした)、SafariではAuthorizationヘッダーフィールドを操作できません。 私たちのソリューションは、自己署名証明書を信頼するか、通常のhttpに切り替えることでした(両方のソリューションが動作しました)。 –