跨域调用IE8& IE9

时间:2015-06-13 00:45:03

标签: jquery ajax internet-explorer

我正在对各种端点进行各种跨域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">

所以,我想我有几个问题:

  1. onload和onerror是否与jquery的.done和.fail相同?

  2. 如果不能,我怎样才能根据成功或失败的反应做事?

  3. 基本上,如果有人可以帮我翻译ajax调用我正在制作xdr等价物。我非常感谢你的帮助。

0 个答案:

没有答案