2015-09-28 211 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發生在我的項目中。 當我解決回發問題時,錯誤消失了。