2013-09-24 52 views
3

我已閱讀過類似問題的類似問題,但我閱讀的每條建議似乎對我而言效率低下。這裏是ajax調用(我正在使用Jquery 1.9.1):JQuery ajax查詢失敗非常默默

$(document).ajaxError(function() { 
alert("AJAX ERROR"); 
}); 

$.post("/lists/complete", { itemID:id }, function(answer) { 
    alert("SUCCESS"); 
}, "text").fail(function() { 
    alert("ERROR"); 
}).always(function() { 
    alert("DONE"); 
}); 

在服務器端,按預期收到請求。如果我監視客戶端的服務器響應(使用Firebug),我可以看到服務器發送200響應以及正文中的正確數據。但是,不會觸發警報!

我能做些什麼來了解這個問題?我要補充一點,我有JS和jQuery的經驗非常少......

+0

只運行您發佈的代碼它的工作原理:http://jsfiddle.net/ZgKvH/。 '$ .post'之後你在做什麼?我懷疑有一個JavaScript錯誤的地方。 –

+0

你是否返回無效的JSON? – epascarello

+0

@MichaelKunst在'$ .post'之後,我什麼都不做。並且firebug不會在js中報告任何錯誤... – paradigmatic

回答

3

我也不是jquery post的粉絲。我更喜歡使用$ .ajax。但是,建議鏈接完成,失敗並始終。

$.ajax({ 
    url: ' yoururl ', 
    type: 'POST', 
// dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)', 
    data: {param1: 'value1'}, 
}) 
.done(function() { 
    console.log("success"); 
}) 
.fail(function() { 
    console.log("error"); 
}) 
.always(function() { 
    console.log("complete"); 
}); 

http://api.jquery.com/jQuery.ajax/

棄用說明:的jqXHR.success(),jqXHR.error(),和 jqXHR.complete()回調棄用的jQuery 1.8。要準備 您的代碼以進行最終刪除,請改用jqXHR.done(),jqXHR.fail(), 和jqXHR.always()。

+0

同樣的問題(如問題中所述) – paradigmatic

+0

是在回調觸發中的console.log方法嗎?你可以設置一個jsfiddle向我們顯示錯誤?嘗試在單獨的文件(沒有任何其他代碼)的ajax調用,看看是否工作。您必須嘗試並指出您的問題,因爲代碼沒有任何問題。 –

+0

如果您通過瀏覽器訪問「/ lists/complete」,會發生什麼情況?你是否得到預期的迴應?你在使用MVC架構嗎? –

0

I V從來沒有$。員額的球迷,我寧願使用完整的Ajax調用:

$.ajax({ 
    type: 'POST', 
    url: '/lists/complete', 
    data: data, 
    success: function(data){ 
    alert("SUCCESS"); 
    }, 
    error: function(xhr, type, exception) { 
    // if ajax fails display error alert 
    alert("ajax error response type "+type); 
    } 
}); 

給這拍攝並讓我知道警報是否消失。 如果不能解決問題,請打開控制檯(firebug ...)並轉到網絡選項卡,將其清除併發送您的請求。

單擊該請求並檢查標題和響應是否正常。

+0

感覺'$ .post'方法是一樣的。使用'.ajax',或者實際上,提供一個漂亮的對象作爲參數要簡潔得多,而且您不必擔心參數放置。 – Mark

+0

同樣的問題(如問題中所述) – paradigmatic

+0

@paradigmatic控制檯網絡選項卡中的響應顯示什麼? –