IE中的dojo.xhrGet没有执行回调函数

时间:2011-11-21 06:15:39

标签: ajax dojo callback xmlhttprequest

我正在尝试使用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);

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用preventCache parameter? 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);
  }
};

答案 1 :(得分:0)

我能够追踪问题......都是因为这个:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

我把它包含在我的主文件中,由于某种原因它阻碍了在ie和chrome中触发的回调(虽然Chrome被击中或错过)。我不确定为什么firebug会导致这种情况,但删除包含修复了问题。感谢大家的投入。