首页 > 解决方案 > 如何在 IE 中返回 AJAX 回调?

问题描述

我无法访问从 IE11 上的 AJAX 请求中检索到的数据。我正在使用 Jquery 发送 AJAX 请求:

在 Chrome 中,FF 我有一个responseText字段,我可以在响应对象中轻松访问该字段。

var ExternalApiService = (function(){
    var getTimeGMT = function(){
        return $.get("{api_path}.php",function(data, textStatus, jqXHR){
            return jqXHR.responseText;
        });
    };
    return{
        getTimeGMT: getTimeGMT
    }
})();

然后,当我打电话时

ExternalApiService.getTimeGMT()

在 Chrome 和 FF 上,我得到响应的对象有一个我可以轻松访问的responseText字段。在 IE11 中我没有那个字段。

然而,在 IE开发人员工具中,在Network上,在 API 调用中,如果我单击Body => Response body的右侧,我可以看到我有我需要的文本。API调用有效,我只是无法访问响应正文。

我如何访问这些数据?

标签: javascriptphpjqueryajaxinternet-explorer

解决方案


根据文档responseText是作为第三个jqXHR参数传递给成功函数的对象的参数,而不是. 也就是说,响应数据已全部包含在内 - 很少有理由使用原始值,因为您已经拥有它。datadatajqXHR.responseText

$.get('https://{api_path}.php',function(data, textStatus, jqXHR){
     console.log(jqXHR.responseText);
     return data;
});

如果您在没有正确 CORS 标头的情况下发出跨域请求,则它可能不可用。


推荐阅读