サーバーからいくつかのバイナリデータを読み取ろうとしていますが、次のように正常に機能します。
var xml = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
xml.open("GET", "/some.php", true);
xml.responseType = "arraybuffer";
xml.onreadystatechange = myHandler; // myHandler here seems to be irrelevant
xml.send();
ただし、次のようにjqueryで同じことを行おうとすると:
$.ajax({
url: "/some.php",
xhrFields: {
responseType: "arraybuffer"
},
complete: function(xhr) {
console.log(xhr.readyState);
console.log(xhr.statusText); // is: [Exception... "An attempt was made to use an object that is not, or is no longer, usable" code: "11" nsresult: "0x8053000b (InvalidStateError)" ...
}
});
jquery sourceのmyHandler
この行に「使用できない、または使用できなくなったオブジェクトを使用しようとしました」というエラーが返されるため、結果を取得できません。その時点では明らかに使用できません。 。これを処理するための最良の方法は何ですか?xhr
それは実際にはstackoverflowでも同じです:/に移動し、firebugコンソールにこれを入力します:
$.ajax({
url: "/",
xhrFields: {
responseType: "arraybuffer"
},
complete: function(xhr) {
console.log(xhr.readyState);
console.log(xhr.statusText);
}
});