0

XMLHttpRequest.send() が失敗することがあります。Chrome のネットワーク パネルから、ステータスが 0 になっています。以下の .har ファイルを参照してください。send() を実行するコードは 99% を超える確率で成功しますが、まれに (~ 1/300) 0 を返します。

私の質問は、どうすればこれをキャッチできますか? それをキャッチするコールバックはありますか?

現在、onload と onerror を使用しています。

var xhr = new XMLHttpRequest();
xhr.onload = function(){};
xhr.onerror = function(){};

どちらも呼び出されていないため、静かに失敗しています。その他の注意事項:

  1. サーバーログにリクエストの証拠がありません
  2. Chrome のコンソールにエラー メッセージが表示されない
  3. サーバーはグーグルアプリエンジン

.har ファイルの出力は次のとおりです。##=編集済み。

{
  "startedDateTime": "2013-03-30T23:52:20.972Z",
  "time": 97,
  "request": {
    "method": "GET",
    "url": "https://www.#######.com/project/auth_upload?to_sign=PUT%0A%0A%0A%0Ax-amz-date%3ASat%2C%2030%20Mar%202013%2023%3A52%3A20%20GMT%0A/s3.#####.com/######.mp4%3FpartNumber%3D50%26uploadId%3D#################.w--&asset_id=#############&project_id=###########",
    "httpVersion": "HTTP/1.1",
    "headers": [
      {
        "name": "Referer",
        "value": "https://www.######.com/console/###########"
      },
      {
        "name": "User-Agent",
        "value": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22"
      }
    ],
    "queryString": [
      {
        "name": "to_sign",
        "value": "PUT%0A%0A%0A%0Ax-amz-date%3ASat%2C%2030%20Mar%202013%2023%3A52%3A20%20GMT%0A/s3.#######.com/############.mp4%3FpartNumber%3D50%26uploadId%3D##############"
      },
      {
        "name": "asset_id",
        "value": "###########"
      },
      {
        "name": "project_id",
        "value": "###############"
      }
    ],
    "cookies": [],
    "headersSize": 595,
    "bodySize": 0
  },
  "response": {
    "status": 0,
    "statusText": "",
    "httpVersion": "HTTP/1.1",
    "headers": [],
    "cookies": [],
    "content": {
      "size": 0,
      "compression": 0
    },
    "redirectURL": "",
    "headersSize": 13,
    "bodySize": 0
  },
  "cache": {},
  "timings": {
    "blocked": 0,
    "dns": -1,
    "connect": -1,
    "send": -1,
    "wait": -1,
    "receive": null,
    "ssl": -1
  }
}

ありがとう、

トム

4

1 に答える 1