跨域ajax jsonp请求在IE8中不起作用

时间:2013-03-21 13:04:24

标签: ajax jquery cross-domain xdomainrequest

使用jquery-1.9.1,我启用了CORS支持。

$.support.cors = true;

然后我正在制作ajax请求,如下所示,我还从服务器端启用了jsonp回调支持。

$.ajax({
            type: 'GET',
            url: url,
            async: false,
            contentType: "application/json",
            jsonpCallback: 'jsonCallback',
            dataType: 'json',
            success: function(data) {
               var featureJSON = data.feature;

            },
            error: function(e) {

            },
            complete: function () {

            }
        });

我已经在jboss中部署了这个并从另一台计算机(不同的域/ IP地址)访问了该页面。此ajax调用可在另一台计算机和同一台计算机上使用FF和Chrome。

它也适用于IE,但在同一台计算机上。

从我部署的计算机以外的其他计算机访问时,无法在IE中使用。

在谷歌上搜索之后我明白IE *不允许jquery所做的跨域ajax调用。并且jquery不支持IE的XDomain对象。

总而言之,如何让jquery使用IE的XDomain对象? ,我差不多完成了应用程序(我的不好,我没有检查XDomain的事情)。我无法再次重建代码。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

你无法“启用”CORS ... $。支持应该是当前浏览器支持的唯一表。将false值更改为true并不会奇怪地将不支持的功能添加到旧浏览器中!

if ($.support.cors) {
// your code
} else {
    $.ajax({
        type: 'GET',
        url: url,
        dataType: 'jsonp',
        data: {
          callback : '?'
        },
        success: function(data) {
           var featureJSON = data.feature;

        },
        error: function(e) {

        },
        complete: function () {

        }
   });
}