[英]Ajax call promise is not getting resolved
我正在用JavaScript代碼對REST API進行AJAX調用。 該調用基本上會獲取一個JSON文件。 AJAX調用是這樣的:
$.ajax(ajaxObj).then(function(response) {}).catch(function(err) {});
因此,網絡監視器顯示此呼叫的狀態200,但JSON響應顯示以下錯誤:
SyntaxError:JSON.parse:JSON數據的第x行和第y列的字符串文字中的錯誤控制字符。
基本上,響應是無效的JSON。 使用debugger
我注意到盡管狀態為200,該控件也永遠不會進入then()
塊,因此該控件正在進入catch塊。 為什么會這樣,我該如何解決呢?
看來您的JSON數據格式錯誤。 檢查JSON響應中字符串中間的回車符或其他無效字符。
假設您期望使用ajaxObj
的JSON字符串,並且錯誤指出您的JSON語法有錯誤,則應檢查返回的JSON是否已正確解析。 您的服務器可以返回200個代碼,但仍在正文中返回無效的JSON。
不確定,但這可能會有所幫助:將您返回的JSON粘貼到此處 。
假設ajax調用返回無效的JSON,則控件將不會進入then()塊。 要處理錯誤,您必須使用done()和fail()方法。
$.ajax("url").done(() => {
//success
}).fail(() => {
//error
})
在錯誤內部,您可以解決承諾。 希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.