2

次のXMLHttpRequestコードがあります。

req.open("GET", url, true);
req.responseType = "arraybuffer";

req.onreadystatechange = function () {
  if (req.readyState != 4) return;
  if (req.status != 200 && req.status != 304) {
    alert('HTTP Error ' + req.status);
    return;
  }

  // check the end of response for "Error:(0|1)" and remove it if match found

  blob = new Blob([req.response], {type: "audio/mpeg"});
  saveAs(blob, "test.mp3");
}

しかし、サーバーから送信されたコンテンツには、このバイナリファイルの末尾に7 文字の追加のステータス メッセージ " Error:(0|1)" が含まれている可能性があります。これを確認する必要があり、見つかった場合は、上記のコードで示したように、BLOB に割り当てる前に削除します。

存在する場合、このステータス メッセージを取得および削除する最も効率的な方法は何ですか?

4

2 に答える 2

0

Blobオブジェクトには と呼ばれるメソッドがありslice()ます。

最後の 11 バイト (ステータス メッセージの長さは 11 バイト) のスライスを作成し、それを var に保存して、その var が " Error:(0|1)" に等しいかどうかを確認します。そうであれば、もう一度スライスを使用して 11 バイトを削除します。

于 2013-07-15T17:30:52.160 に答える