2017-01-17 27 views
0

我有下面的代碼作爲我的阿賈克斯部分jQuery的AJAX - 錯誤運行,即使它成功運行

success: function (data) { 
    alert("success"); 
}, 
error: function(xhr, ajaxOptions, thrownError) { 
    alert(xhr.status); 
} 

第一個提醒從未運行的APRT,但是數據提交正確使用下面的:

data: JSON.stringify({ "solution": JSON.stringify(data) }), // Data is HTML 

事實上,第二次警報的狀態爲200,所有通過谷歌瀏覽器控制檯看起來都不錯。

有什麼想法?完整代碼:

var request = jQuery.ajax({ 
    url: "/answers/"+content_id, 
    type: "POST", 
    data: JSON.stringify({ "solution": data }), 
    dataType: "json", 
    headers: { 
     Authorization: 'Basic XXX', 
     'X-HTTP-Method-Override': 'PATCH', 
     'Content-Type': 'application/json' 
    }, 
    success: function (data) { 
     alert("success"); 
    }, 
    error: function(xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     } 
}); 
+0

什麼是JSON響應? – Rahi

+0

根據[文檔](http://api.jquery.com/jquery.ajax/)檢查其他參數爲'error',其中第二個參數實際上是'textStatus'。這可能是「超時」,「parseerror」或其他內置錯誤。 –

回答

2

$ .ajax函數需要JSON數據作爲響應。如果響應不是JSON,則會調用錯誤回調。請看看你從服務器發出的內容。

+0

application/json是服務器響應 – pee2pee

+0

狀態碼是200嗎? –

+0

是的,它是....... – pee2pee

0

請測試一些東西:

  1. 設置type: "GET"而不是職位。看看這個:GET OR POST

  2. 頁眉數據字符串(名稱/值),也許您的數據編碼是UTF8所以設置

    headers: { 
    
        'Authorization': 'Basic XXX', //high recommended 
        'X-HTTP-Method-Override': 'PATCH', 
        'Content-Type': "application/json; charset=utf-8" //low 
    }, 
    
  3. 測試另一個詞,而不是數據,以避免衝突:

    success: function (response) 
    
+0

請添加一些解釋爲什麼此代碼可以幫助OP。這將有助於提供未來觀衆可以從中學習的答案。有關更多信息,請參閱[答案]。現在,這看起來更像是一組評論,而不是實際的答案。 –

+0

謝謝親愛的@Mike McCaughan。我編輯了我的答案。 –

相關問題