私は ajax 呼び出しを IE9 で適切に動作させようとしています。ネットワーク データで、リクエストが正常に処理されていることがわかります。また、jQuery の $.ajax() 呼び出しによって返される jqXHR オブジェクトには、応答データが含まれています。それでも、私の成功/エラー/完全なコールバックは発生しません。これがコードです...
私のスクリプトの上部に:
// override xhr for browser that use XDR
if ('XDomainRequest' in window && window.XDomainRequest !== null) {
// override default jQuery transport for IE
jQuery.ajaxSettings.xhr = function() {
try { return new XDomainRequest(); }
catch(e) {
console.log('test');
}
};
// Maybe a 304 response is causing the callbacks not to fire?
// This makes sure I'm getting 200
jQuery.ajaxSettings.cache = false;
// also, override the support check
jQuery.support.cors = true;
}
それから私の ajax 呼び出し...かなり明白です。
$.ajax({
url: url,
success: success,
complete: complete,
beforeSend: beforeSend,
error: error
});
function success(response, textStatus, jqXHR){
console.log('success');
if( typeof fn == 'function'){
fn(response.data);
} else {
console.log('Invalid callback supplied for dataGateway');
}
}
function error(jqXHR, textStatus, errorThrown){
console.log("Could not retrieve data from API.");
return;
}
function complete(jqXHR, textStatus){
console.log('complete');
}
// This is the only callback that gets fired
function beforeSend(jqXHR, settings){
console.log('before send');
}
これをトラブルシューティングする方法を知っている人はいますか?