2016-10-08 21 views
1
postData: function (url, data) { 
    var deferred = Q.defer(); 

    $.ajax({ 
     type: 'POST', 
     url: url, 
     data: JSON.stringify(data), 
     dataType: "json", 
     beforeSend: function (xhr, settings) { 
      xhr.setRequestHeader('Authorization', 'Bearer ' + window.access_token); 
      xhr.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); 
     }, 
     success: function (data, responseText, jqXHR) { 
      deferred.resolve(data, responseText, jqXHR); 
     }, 
     error: function (e) { 
      deferred.reject(e); 
     } 
    }); 

    return deferred.promise; 
} 

我不明白爲什麼我的要求是錯誤回調裏面去遞延jQuery的201後創建要在拒絕

enter image description here

+0

服務器返回201我需要處理.. – vini

+0

這很奇怪。任何'2xx'響應代碼都應該被視爲「成功」。 –

+0

你確定你要返回有效的json嗎?如果還存在解析錯誤,則$ .ajax將會出錯 – charlietfl

回答

2

根據您正在返回HTML註釋需要設置相應的dataType

$.ajax如果發生請求的數據類型的分析錯誤,也會發生錯誤。您可以通過登錄錯誤處理程序的論據證實了這一點error: function (xhr, statusText, errorThrown)

嘗試改變

dataType:'json' 

dataType:'html' 

或刪除屬性作爲jQuery將知道從內容類型頭