我這樣做很多次:jQuery的AJAX後回調似乎並不工作
var url = '/offers/1/voting';
var params = { 'direction': 'up' };
$.post(url, params, function() {
alert('callback');
}); // post
(我硬編碼值,在這個例子中,但沒有)
所以,通過我的螢火接收所需的JSON響應(200狀態),但回調不執行。這幾乎是我使用的唯一的JavaScript。用jquery 1.6.4和1.7.1試過,兩者都是一樣的。我不知道我錯過了什麼。
幫幫我,堆棧溢出。你是我唯一的希望。
它打響了錯誤回調與我的反應。我認爲在響應代碼!= 200時觸發了錯誤回調,但我一定是錯的。所以,我可能在我的控制器中做了錯誤的事情。現在我必須檢查一下。謝謝安德烈! – anders
如果您在POST請求的響應中沒有返回任何數據,那麼jQuery JSON解析器無法解析空響應(空不是有效的JSON),並返回錯誤,儘管200 OK。請注意,dataType參數用於根據$ .post的文檔從服務器返回的數據的格式,而不是傳遞到服務器的數據的格式。如果您知道響應爲空,則將dataType更改爲「text」,您應該看到您的成功處理程序觸發。 –
我會擴展@ SteveGrove的評論 - 這不僅僅是空的響應,而且還包括任何非JSON響應。比方說,如果你發表了一個投票,並且它只是一個數字而返回一個新的投票數,那麼jQuery將無法將其解析爲JSON,並且jQuery將拋出一個錯誤。 – Andrey