2016-09-22 235 views
1

當我們嘗試獲取HTML(不是application/json)時,是否有可能強制$.getJSON()函數產生錯誤。看起來,這個延遲只是返回空對象,然後(或完成)。

我們如何找到then處理程序哪個content-type作爲響應被處理? 我有這種情況,當服務不可用時,服務器可以返回HTML而不是JSON。

+0

你爲什麼不只是拋出一個異常,在處理程序時的響應是空的呢? –

+0

實際上它非常簡單,如果狀態是20x並且響應可以通過$ .parseJSON成功解析,則認爲它是成功的。它忽略了內容類型,因爲開發人員經常忘記返回它。你應該在.then中測試null,並且如果它是null或者空字符串會導致承諾被拒絕(或者修復服務器) –

回答

1

$.getJSON()當響應爲text/html時失敗。看到這個例子:

$.getJSON('http://httpbin.org/html') 
 
    .then(() => console.log('success'),() => console.log('error'))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

謝謝,當然,我們似乎在某處沒有指定正確的內容類型而使用$ .ajax。 – yavalvas

相關問題