簡體   English   中英

Ajax呼叫承諾未得到解決

[英]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響應中字符串中間的回車符或其他無效字符。

在此代碼中可能與如何解決JSON.parse:字符串文字中的錯誤控制字符有關

假設您期望使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM