Ajax 未在IE中的dojo.xhrGet上执行回调函数

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

我试图使用dojo.xhrGet从php文件中获取一些json。Firefox中的一切都很好,但IE根本不起作用,Chrome也可能会出错。问题是没有执行回调(在load参数中)。我在Chrome中检查了Inspector,请求返回了正确的数据,readyState为4,状态为200,但是回调没有执行。你知道会出什么问题吗?这会因为范围界定问题而发生吗

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中复制它,但没有成功。我找到了导致我的问题的原因,检查下面的答案。谢谢你的帮助。