2015-09-28 3307 views
6

我正在对后端休息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; 
    } 
) 

enter image description here enter image description here

+1

通常,这是从响应被阻止,因为它是一个跨域请求。你的页面是同一台服务器上的AJAX内容吗? – scunliffe

+0

是的,它在同一台服务器上。我正在使用Nginx。 –

+0

[Chrome开发工具可能出现重复,即使返回的内容有头Content-Type:text/html;字符集= UTF-8](https://stackoverflow.com/questions/38924798/chrome-dev-tools-fails-to-show-response-even-the-content-returned-has-header-con) – dhilipsiva

回答

3

显然,事实证明,有一些问题的消解的cookie的内容。在清理它们时,系统表现良好。 不确定需要帮助!

1

我确认这一点。自从Chrome版本45和我看到我的一些Ajax请求有200作为状态代码,但在显示内容“无法加载内容”时出现问题。

我的Ajax请求在for循环中,再次请求失败的内容使得内容加载正常。

它似乎解决了for循环内部使用请求和其他之间的setTimeout

-1

由于postback发生在我的项目中。 当我解决回发问题时,错误消失了。