Ajax响应200正常,但显示未能加载响应数据
问题描述:
我正在对后端休息api进行ajax调用,api返回正常。如果我console.log()成功的数据和错误数据,它会给控制台上的“资源登录”,200确定,但当我在网络选项卡响应中查看该auth/login路由时,它显示“无法加载响应数据“。而这种情况有时只会发生,并不总是。为什么? 这是我的ajax调用的片段。Ajax响应200正常,但显示未能加载响应数据
ajax
.post('auth/login', {
data: {
oauth_provider: 'google',
oauth_token: (isToken ? authResult : authResult.access_token)
},
cache: false
})
.done(function(data) {
console.log(data); // Resource Logged in
})
.error(function(err){
console.log(err);
})
这里是我的ajax.js
define(
[
'jquery',
'util',
],
function ($, util) {
var ajax = {
request: function (type, url, options) {
if (url.indexOf('http') === -1) {
url = util.url(url);
}
if (options === undefined) {
options = {};
}
options.type = type
options.url = url;
return $.ajax(options);
},
get: function (url, options) {
return ajax.request('GET', url, options);
},
post: function (url, options) {
return ajax.request('POST', url, options);
},
put: function (url, options) {
return ajax.request('PUT', url, options);
},
delete: function (url, options) {
return ajax.request('DELETE', url, options);
}
};
return ajax;
}
)
答
显然,事实证明,有一些问题的消解的cookie的内容。在清理它们时,系统表现良好。 不确定需要帮助!
答
我确认这一点。自从Chrome版本45和我看到我的一些Ajax请求有200作为状态代码,但在显示内容“无法加载内容”时出现问题。
我的Ajax请求在for循环中,再次请求失败的内容使得内容加载正常。
它似乎解决了for循环内部使用请求和其他之间的setTimeout
。
答
由于postback发生在我的项目中。 当我解决回发问题时,错误消失了。
通常,这是从响应被阻止,因为它是一个跨域请求。你的页面是同一台服务器上的AJAX内容吗? – scunliffe
是的,它在同一台服务器上。我正在使用Nginx。 –
[Chrome开发工具可能出现重复,即使返回的内容有头Content-Type:text/html;字符集= UTF-8](https://*.com/questions/38924798/chrome-dev-tools-fails-to-show-response-even-the-content-returned-has-header-con) – dhilipsiva