我有一個Ajax調用API,當URL和參數很好時,它將正確返回(200)。現在我試圖強迫一個錯誤的請求。控制檯會通知我有關錯誤代碼400,但似乎從未進入錯誤方法。相反,它陷入了一些jquery行,永遠不會返回。jquery ajax響應錯誤不起作用
fetch: function(successCallback, errorCallback) {
var apiUrl = this.applyFilter(filters);
var self = this;
this.log('fetch', apiUrl, currentSearchMode);
$.ajax({
url: apiUrl,
type: 'GET',
cache: (debug) ? true: false,
processData: true,
crossDomain: true,
scriptCharset: 'UTF-8',
jsonp: 'callback',
dataType: 'jsonp',
success: function(data, statusText, jqXHR) {
console.log(jqXHR);
// if(jqXHR.status == 400){
// console.log('there is an error');
// }
self.log('fetch::success', data);
if (typeof data.error !== 'undefined') {
showNoResultError = true;
var appData = lastValidResult[currentSearchMode];
} else {
showNoResultError = false;
var appData = self.normalize[currentSearchMode](self, data);
lastValidResult[currentSearchMode] = appData;
}
if (typeof successCallback === 'function')
successCallback(appData);
},
error: function(jqXHR, textStatus, errorThrown) {
//do sth here
// if(jqXHR.status&&jqXHR.status==400){
// alert(jqXHR.responseText);
// }else{
// alert("Something went wrong");
// }
// console.log('works now');
// self.log('fetch::error', textStatus, errorThrown);
// if (typeof errorCallback === 'function')
// errorCallback.apply(this, arguments);
},
complete: function(jqXHR, textStatus) {
console.log(jqXHR);
console.log('complete');
}
});
},
因此,圖像顯示卡住的位置。我只能捕獲完整的和成功的功能,但是當出現400響應時,什麼都沒有發生。嘗試過任何事情,也完成(),失敗(),因爲我認爲可能存在問題與不贊成的行爲。但同樣的問題。有人可以幫忙嗎?
是網址是否有效?你能顯示你的瀏覽器控制檯嗎? – ggderas
您的服務器應該支持正在發送的請求的類型。 –
該URL有效,但有意使用錯誤的參數調用以激發400狀態碼,該狀態碼已返回但不會由我的錯誤代碼處理。 – kayoken