1
當我們嘗試獲取HTML(不是application/json
)時,是否有可能強制$.getJSON()
函數產生錯誤。看起來,這個延遲只是返回空對象,然後(或完成)。
我們如何找到then
處理程序哪個content-type
作爲響應被處理? 我有這種情況,當服務不可用時,服務器可以返回HTML而不是JSON。
當我們嘗試獲取HTML(不是application/json
)時,是否有可能強制$.getJSON()
函數產生錯誤。看起來,這個延遲只是返回空對象,然後(或完成)。
我們如何找到then
處理程序哪個content-type
作爲響應被處理? 我有這種情況,當服務不可用時,服務器可以返回HTML而不是JSON。
$.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>
謝謝,當然,我們似乎在某處沒有指定正確的內容類型而使用$ .ajax。 – yavalvas
你爲什麼不只是拋出一個異常,在處理程序時的響應是空的呢? –
實際上它非常簡單,如果狀態是20x並且響應可以通過$ .parseJSON成功解析,則認爲它是成功的。它忽略了內容類型,因爲開發人員經常忘記返回它。你應該在.then中測試null,並且如果它是null或者空字符串會導致承諾被拒絕(或者修復服務器) –