web-dev-qa-db-ja.com

エラー「ネットワークエラー0x2ef3」でキャッシュをクリアした後、IE10 / IE11がPost Ajaxリクエストを中止する

SCRIPT7002:XMLHttpRequest:ネットワークエラー0x2ef3、エラー00002ef3が原因で操作を完了できませんでした

現時点で有効な解はありません。

更新:IE11でも通知されます。

ますます調査した後、私はこの結果を得ました:

  1. この問題は私のアプリケーションに固有のものであり、Facebookでは発生しません。
  2. 問題はホストあたりの最大リクエスト数とは関係ありません(私はサーバーにフラッディングするサンプルページを実行しました、IE10は同時に最大8-10 reqを処理でき、アプリケーション内でajaxリクエストをシリアルに実行しようとしました、それも失敗しました)。
  3. 問題はPOSTリクエストに固有です。
  4. この問題は、使用したJSライブラリに固有のものではありません(コンソールから直接XMLHttpRequestを試しましたが、失敗しました)。
  5. この障害は、xhr.send()、xhr.readyState = 4、およびxhr.onreadystatechangeがトリガーされた後に発生しました。
  6. 失敗は、コンテンツタイプ、適切な要求、またはサーバー構成とは関係ありません。これは唯一のクライアントであり、ダミーページの要求は失敗し、最低限のXHRでxhr.openとxhr.sendのみとなります。
  7. これは主にブラウザのキャッシュをクリアした後に発生しました。
  8. POST=の前にGETリクエストを実行しても、この問題は解決されません。

私の質問は:

  1. ブラウザのキャッシュがPOST ajaxリクエストにどのように影響するか?
  2. いずれかの団体がIE開発者と連絡を取り、このエラー「ネットワークエラー0x2ef3」のマッピング先を教えてくれますか?

今のところ、私が行っている一時的な解決策は、HTTPステータスコードがゼロの場合、最大3回再試行することです。ただし、アップロードリクエストでも失敗することがあり、再試行によりリクエストが遅くなる場合があるため、非常に見苦しくなり、場合によっては100ミリ秒余分にかかることがあります。

再現手順:

  1. バイオリン弾きまたはプロキシが無効になっていることを確認します。
  2. http://ie10.laiths.name/#!login
  3. IE10コンソールを開き、ブラウザーのキャッシュを削除します。
  4. 次の無効なログインを試してください:[email protected]/random
  5. 3〜4回(clear-cache/invalid-login)後に、次のエラーが表示されます:SCRIPT7002:XMLHttpRequest:Network Error 0x2ef3、could not complete the operation due to error 00002ef3。

My IEバージョン:

  • Win7 IE10バージョン:10.0.9200.16618
  • 更新バージョン:10.0.6(KB2838727)

今のところ、browser is IE10 && Request is POST && HTTP status code is 0の場合、最大3回再試行して解決しています。

誰かが私の醜い解決策を削除するのを手伝ってくれるとありがたいです。そのような解決策では、リクエストがサーバーに行き、それが0を返したとしても、再試行します(xhr.send間の時間を測定することでそれを回避しようとしました)およびそのコールバックですが、信頼性はありません)、comptModeのIE10の場合、IE11に同じ問題がある場合はどうでしょうか、そのパフォーマンスに加えて、再試行のたびに〜170msかかります。

29
Laith Shadeed

これは、セキュリティ証明書の問題が原因で発生している可能性があります。キャッシュをクリアすると、証明書情報の一部(すべてではない)が失われます。

http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/ で詳細情報(および回避策)を見つけることができます

基本的に、証明書情報を更新するには、POSTリクエストの前にGETを実行する必要があります。

11

私はこの問題を抱えていました、AJAX一部のJSONを返したPostリクエストは失敗し、最終的には次のように中止されます:

SCRIPT7002:XMLHttpRequest:ネットワークエラー0x2ef3

コンソールのエラー。他のブラウザ(Chrome、Firefox、Safari)では、まったく同じAJAXリクエストで問題ありませんでした。

詳しい調査の結果、応答にステータスコードがないことがわかりました。この場合、500内部エラーでした。

これは、エラーコードを明示的に設定する必要があるサービススタックを使用するC#Webアプリケーションの一部として生成されていました。

IEは接続を開いたままにしているようでしたが、最終的にネットワーク層が接続を閉じ、要求を「打ち切り」ました。コンテンツやその他のヘッダーを受け取っているにもかかわらず。

ステータスコードを正しく返すようにWebアプリケーションを更新すると、問題が修正されました。

IEが投稿のヘッダーを処理する方法に問題がある可能性があります。

これが誰かを助けることを願っています!

1
Andrew Keeling