0

使用 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 的事情)。我无法再次重建代码。还有其他解决方案吗?

4

1 回答 1

2

您不能“启用” CORS ...$.support 应该是当前浏览器支持的唯一表格。将 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 () {

        }
   });
}
于 2013-03-21T14:24:08.763 回答