ajax POST调用在IE中不起作用,但在所有其他浏览器中都起作用
嘿,我有以下ajax POST调用:ajax POST调用在IE中不起作用,但在所有其他浏览器中都起作用,ajax,internet-explorer,jquery,post,Ajax,Internet Explorer,Jquery,Post,嘿,我有以下ajax POST调用: function callAjax(what2Do) { jQuery.ajax({ url: "count.php?do=" + what2Do, type: "POST", data: "", cache: false, success: function(response, textStatus, jqXHR)
function callAjax(what2Do)
{
jQuery.ajax({
url: "count.php?do=" + what2Do,
type: "POST",
data: "",
cache: false,
success: function(response, textStatus, jqXHR){
alert('done!');
},
error: function(jqXHR, textStatus, errorThrown){
alert(
"The following error occured: "+
textStatus, errorThrown
);
}
});
}
我不断收到错误出现了以下错误:在iE9中运行页面时出错,但在所有其他浏览器中都可以正常工作
如果IE中没有它,我会错过什么?返回的是简单的文本。请尝试以下操作:
function callAjax(what2Do)
{
jQuery.ajax({
url: "./count.php",
type: "GET",
data: { 'do': what2Do },
cache: false,
success: function(response, textStatus, jqXHR){
alert('done!');
},
error: function(jqXHR, textStatus, errorThrown){
alert(
"The following error occured: "+
textStatus, errorThrown
);
}
});
}
不幸的是,为了应对几乎相同的情况,我不得不参加遗留IE行为的速成班。在我的例子中,它归结为一个顽固的IE使用自己专有的XDomainRequest对象来处理COR。一些好的链接:
// This is necessary due to IE<10 having no support for CORS.
function fallbackXDR(callObj) {
if (window.XDomainRequest) {
var xdrObj = new XDomainRequest();
xdrObj.timeout = callObj.timeout;
xdrObj.onload = function() {
handleSuccess(xdrObj.responseText);
};
xdrObj.onerror = function() {
handleError(xdrObj);
};
xdrObj.ontimeout = function() {
callObj.xdrAttempts = callObj.xdrAttempts++ || 1;
if (callObj.xdrAttempts < callObj.maxAttempts) {
fallbackXDR(callObj);
}
};
xdrObj.onprogress = function() {
// Unfortunately this has to be included or it will not work in some cases.
};
// Use something other than $.param() to format the url if not using jQuery.
var callStr = callObj ? '?'+$.param(callObj.urlVars) : '';
xdrObj.open("get", callObj.url+callStr);
xdrObj.send();
} else {
handleError("No XDomainRequest available.", callObj);
}
}//fallbackXDR()
//这是必要的,因为IETo要获得更好的信息,请修复警报以便获得更多信息<代码>文本状态+“|”+错误抛出
查看IE9开发工具(F12)中的网络选项卡。这应该会给你完整的答复。如果你在那之后步履蹒跚,在这里发布响应以获得进一步帮助。我的钱在他身上,意思是IE8。@flem:在“网络”选项卡的响应正文中,它有正确的NOTQUICED值,并且它发送的参数也很好,所以我不确定为什么会出错?@KevinB:错误是TypeError:Object不支持属性或方法“toLowerCase”,我正在运行这个在facebook标签内。支持这个建议。还记得修改服务器端代码以使用POST数据而不是GET数据是的,我担心OP发送的帖子URL中包含GET数据。这不应该是个问题,但是IE8对这样的东西特别挑剔。你能试着把它放在jQuery.ajax(line?alert(what2Do))之前吗;