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