2

XHR レスポンスをTypedArrayJavaScript に変換しようとすると、次のようになります。

TypeError: 型エラー

これは私のサーバー側コード (ASP.NET Web フォーム) です。

public partial class _Default : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int number = 4;
        Response.BinaryWrite(BitConverter.GetBytes(number));
        Response.End();
    }
}

そしてここに私のクライアント側のコード:

xhr.open("GET", "http://localhost:6551/Default.aspx", false);  
xhr.overrideMimeType("text/plain; charset=x-user-defined");  
xhr.send(null);
var sss = new DataView(xhr.response);

また、を変換しようとすると、xhr.response次のInt16Arrayエラーが発生します。

RangeError: サイズが大きすぎます (または負です)。

コードの何が問題になっていますか?

4

1 に答える 1

2

問題が見つかりましxhr.responseType = "arraybuffer";た。XHR リクエストで使用する必要があり、コードは最終的に次のようになります。

var xhr = new XMLHttpRequest();

xhr.open("GET", "http://localhost:6551/Default.aspx", true);
xhr.responseType = "arraybuffer"; 
xhr.onload = function(e) {
  var arraybuffer = xhr.response; // not responseText
  console.log(new Uint32Array(arraybuffer));
}
xhr.send();

詳細: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest

助けてくれてありがとう@MarcoK。

于 2013-02-05T07:28:19.040 に答える