私の AngularJS アプリケーションは、当社のサービス (Jetty を利用) に対して多くの AJAX リクエストを実行しています。何らかの理由で、一部のユーザーにのみ次のエラーが発生し、ブラウザーのキャッシュをクリアするように求められると消えます。これは Google Chrome でのみ発生します。
www.domain.com で api.domain.com をリクエストしようとしています。
XMLHttpRequest はhttp://api.domain.com/my-serviceを読み込めません。リクエストは「 https://api.domain.com/my-service 」にリダイレクトされました。これは、プリフライトを必要とするクロスオリジン リクエストでは許可されていません。/現在のページ
Chrome がサービスを HTTP から HTTPS にリダイレクトしようとしていることに注意してください。私のウェブサイトは HTTP または HTTPS 経由でアクセスできます
chrome://net-internals/#events の出力は次のとおりです。
1523417: URL_REQUEST
http://api.domain.com/my-service
Start Time: 2014-08-15 14:17:39.809
t=5984 [st= 0] +REQUEST_ALIVE [dt=26]
t=5984 [st= 0] +URL_REQUEST_DELEGATE [dt=0]
t=5984 [st= 0] DELEGATE_INFO [dt=0]
--> delegate_info = "extension AdBlock"
t=5984 [st= 0] DELEGATE_INFO [dt=0]
--> delegate_info = "extension AdBlock"
t=5984 [st= 0] -URL_REQUEST_DELEGATE
t=5984 [st= 0] +URL_REQUEST_START_JOB [dt=26]
--> load_flags = 143540480 (DO_NOT_SAVE_COOKIES | DO_NOT_SEND_AUTH_DATA | DO_NOT_SEND_COOKIES | ENABLE_LOAD_TIMING | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VERIFY_EV_CERT)
--> method = "OPTIONS"
--> priority = "LOW"
--> url = "http://api.domain.com/my-service"
t=5984 [st= 0] URL_REQUEST_REDIRECT_JOB
--> reason = "HSTS"
t=5985 [st= 1] +URL_REQUEST_DELEGATE [dt=25]
t=5985 [st= 1] DELEGATE_INFO [dt=25]
--> delegate_info = "AsyncResourceHandler"
t=6010 [st=26] -URL_REQUEST_DELEGATE
t=6010 [st=26] CANCELLED
t=6010 [st=26] -URL_REQUEST_START_JOB
--> net_error = -3 (ERR_ABORTED)
t=6010 [st=26] URL_REQUEST_DELEGATE [dt=0]
t=6010 [st=26] -REQUEST_ALIVE
Chromeがそのようなリダイレクトを強制する理由は何ですか? ネットワーク タブに問題はありません。その要求に対して何も戻ってきません。
より詳しい情報:
これは、動作中の Chrome ブラウザーの応答ヘッダーです。
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:X-Requested-With, authorization, content-type, X-CSRF-Token
Access-Control-Allow-Methods:GET, POST, HEAD, PUT, OPTIONS
Access-Control-Allow-Origin:http://api.domain.com
Content-Length:0
Server:Jetty(8.y.z-SNAPSHOT)