2016-02-28 14 views
7

コンテキスト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を使用する保護された単語ですか?

+1

AuthorizationがSafariの保護された単語であるかどうかを判断しましたか? –

+0

Safariで保護された単語について何も見つかりませんでした。 –

+0

私たちは問題が何かを発見しました。安全でない証明書でSafariを使用しようとすると(Self-Signedが私たちの犯人でした)、SafariではAuthorizationヘッダーフィールドを操作できません。 私たちのソリューションは、自己署名証明書を信頼するか、通常のhttpに切り替えることでした(両方のソリューションが動作しました)。 –

答えて

5

また、サファリでも同様の問題が発生しました。ここでは、ヘッダーの「Authorization」はGETリクエストで送信されませんでしたが、単純なことになりました。

私は単純にリクエストURLの最後に「/」を追加してくれました。

たとえば: '/ token'から '/ token /'にURLを変更します。

関連する問題