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.responsewith时,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 回答