Ajax 未在IE中的dojo.xhrGet上执行回调函数
我试图使用dojo.xhrGet从php文件中获取一些json。Firefox中的一切都很好,但IE根本不起作用,Chrome也可能会出错。问题是没有执行回调(在load参数中)。我在Chrome中检查了Inspector,请求返回了正确的数据,readyState为4,状态为200,但是回调没有执行。你知道会出什么问题吗?这会因为范围界定问题而发生吗Ajax 未在IE中的dojo.xhrGet上执行回调函数,ajax,dojo,callback,xmlhttprequest,Ajax,Dojo,Callback,Xmlhttprequest,我试图使用dojo.xhrGet从php文件中获取一些json。Firefox中的一切都很好,但IE根本不起作用,Chrome也可能会出错。问题是没有执行回调(在load参数中)。我在Chrome中检查了Inspector,请求返回了正确的数据,readyState为4,状态为200,但是回调没有执行。你知道会出什么问题吗?这会因为范围界定问题而发生吗 var xhrArgs = { url : "/phpHelpers/getImages.php", handleAs : "j
var xhrArgs = {
url : "/phpHelpers/getImages.php",
handleAs : "json",
load : function(result) {
alert('load callback');
},
error : function(error) {
alert('error');
}
};
this.def = dojo.xhrGet(xhrArgs);
您是否尝试过使用
preventCache
?IE特别喜欢缓存xhr GET,除非在开发者工具中勾选了“总是从服务器刷新”选项
var xhrArgs = {
url : "/phpHelpers/getImages.php",
handleAs : "json",
preventCache: true,
load : function(result) {
console.log(result);
},
error : function(error) {
console.log(error);
}
};
我能找到这个问题。。。都是因为这个,
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
我把它包含在我的主文件中,出于某种原因,它阻碍了ie和chrome中的回调(尽管chrome是命中或未命中的)。我不知道为什么firebug会导致这种情况,但是删除include修复了这个问题。谢谢大家的意见。你确定“console.log(result)”方法不会在IE中导致错误吗(你可以简单地将“console.log(result)”替换为“alert('Data loaded')”进行检查)?@Andrei-这在写问题时是个错误,我的代码中有一个alerts。我已经修改过了,这很奇怪。看看是否可以在JSFiddle中复制一个最小的示例。@missingo-我试图在JSFiddle中复制它,但没有成功。我找到了导致我的问题的原因,检查下面的答案。谢谢你的帮助。