我正在对各种端点进行各种跨域ajax调用。这在Chrome,Firefox和IE 10和11中运行得很好但是它在IE8和IE9中不起作用。我在控制台中收到以下错误:
[object Object] {readyState:0,status:0,statusText:" No Transport"}
我使用的ajax代码如下:
$.getJSON(url).done(function (data) {
console.log(data);
//Do stuff based on response
}).fail(function (data){
//Do stuff based on response
});
由于其他人说它可能会有效,我尝试添加以下内容:
$.support.cors = true;
但是我仍然收到同样的错误。
我已经读过IE8和IE9不支持ajax调用,我需要使用xdr。
我也试过了,但我没有运气,以下是我试过的代码:
var xdr = new XDomainRequest();
xdr.onload = function () {
console.log(xdr.responseText);
}
xdr.onerror = function () { /* error handling here */ }
xdr.open('GET', url);
xdr.send();
然而,这也不起作用。由于我之前从未使用过xdr,因此我很可能做错了。
console.log正在输出以下内容:
<!doctype html>
<html lang="en-us">
<head>
<title>SubscriberExists Snapshot of 6/13/2015 12:12:22 AM</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
所以,我想我有几个问题:
onload和onerror是否与jquery的.done和.fail相同?
如果不能,我怎样才能根据成功或失败的反应做事?
基本上,如果有人可以帮我翻译ajax调用我正在制作xdr等价物。我非常感谢你的帮助。