我有以下的jQuery:jQuery AJAX返回200 OK狀態,但錯誤。我如何查看錯誤的細節?
var fn = {
Load: function() {
$(".myclass input.Submit").click(function (e) {
var _IsValid = fn.IsValid();
if (_IsValid == false) {
e.preventDefault();
}
//Popup displays message fine if "return false;" is
//called here but then obviously never posts back.
});
}
, IsValid: function() {
var _IsValid = true;
$.ajax({
url: "/myURL"
, type: 'POST'
, contentType: 'application/json; charset=utf-8'
, data: JSON.stringify({ Barcode: $barcode.val(), Email: $email.val() })
, dataType: 'json'
, success: function (data) {
var array = eval(data);
if (array[0] == 0) {
_IsValid = false;
ShowPopup(array[1]);
}
}
, error: function (xhr, status, error) {
}
});
return _IsValid;
}
}
AJAX響應200 OK
,但success
功能不是跑。相反,它似乎在運行error
函數。
該腳本正在作爲ASP.NET ImageButton的單擊事件偵聽器運行。如果_IsValid==false
,則調用e.preventDefault()
以防止回發。
奇怪的是,如果我將事件偵聽器函數的結尾添加返回false,則此代碼將運行success
函數。
我怎樣才能找出是什麼導致這種錯誤,以便我可以解決它?
感謝您的回覆。我已經做出了您所推薦的更改,但仍然存在錯誤。此外,我試着在Google Chrome中調試javascript。 'xhr.ResponseText =「」'。你有什麼其他的建議? – Curt 2012-03-19 17:25:40
我的建議是看網絡標籤,你看到的AJAX請求和響應。但在這種情況下,如果服務器發送了一個空的響應,並且您明確設置了'dataType:'json'',那麼,您知道,''''是無效的JSON。所以你可能會嘗試修復你的服務器來發送有效的JSON。 – 2012-03-19 17:26:19
我也更新了一些關於應用 – Curt 2012-03-19 17:27:32