拒绝访问IE上的jQuery脚本
我有一个使用jQuery
1.4.2脚本的iframe。将相同的iframe注入到http
和https
站点中。jQuery脚本作为相对路径包含在主HTML文件中(例如/scripts/jquery-1.4.2.min.js)。
进行AJAX调用时,Internet
Explorer拒绝访问。AJAX正在调用另一个子域,但它使用的是正确的协议。所有其他浏览器都可以工作,但是Internet Explorer出现以下错误:
脚本5:访问被拒绝。
jquery-1.4.2.min.js,第127行,字符344
我听说此错误来自跨域AJAX调用。但是,为什么IE是唯一给我废话的人?有IE解决方案吗?
另外,这是我的AJAX:
$.ajax({ url: thisURL,
dataType: "json",
data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
success: function(ret){
callback(ret)
}
});
回答:
IE要求您为跨站点使用XDomainRequest而不是XHR,您可以尝试类似…
if ($.browser.msie && window.XDomainRequest) { // Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", url);
xdr.onload = function() {
// XDomainRequest doesn't provide responseXml, so if you need it:
var dom = new ActiveXObject("Microsoft.XMLDOM");
dom.async = false;
dom.loadXML(xdr.responseText);
};
xdr.send();
} else {
// your ajax request here
$$.ajax({
url: thisURL,
dataType: "json",
data: {cmd : 'getMessage', uurl: urlVar, t: Math.random()},
success: function(ret){
callback(ret)
}
});
}
不确定是否适合您的情况
xdr = new XDomainRequest(); xdr.onload=function()
{
alert(xdr.responseText);
}
xdr.open("GET", thisUrl); //thisURl ->your cross domain request URL
//pass your data here
xdr.send([data]);
以上是 拒绝访问IE上的jQuery脚本 的全部内容, 来源链接: utcz.com/qa/421858.html