0
我正在調用API並在JavaScript中按預期返回結果。如果返回400狀態,我會調用另一個API,我正在使用if語句進行操作。然而,這個「如果」從來沒有被觸發,我想是因爲我的反應正在被閱讀的方式。我的代碼是:無法正確讀取API調用(JS)的響應
var getSearchPrimary = {
url: 'SEARCH_URL',
type: 'POST',
crossDomain: true,
dataType: 'jsonp',
context : this,
cache : true,
timeout: 60000,
success : function(e) {
status = JSON.stringify(e.status.code);
if(status === "400"){
console.log("failed");
this.getSearchSecondary(query);
}else{
console.log(JSON.stringify(e));
}
在這種情況下,當我做console.log(status);
我得到"400"
所以我真的不知道爲什麼我的if語句永遠不會開火!
的響應是:
{ 「狀態」:{ 「代碼」: 「400」, 「消息」: 「錯誤:沒有結果匹配查詢」}, 「響應」:{ 「結果」: 「」}}
我一直在盯着這一段時間,真的很感謝任何見解!
您的控制檯日誌返回400作爲字符串或int?因爲你使用嚴格的比較'==='。嘗試使用== == –
有趣的 - 我只是嘗試用if(!(e.response.length))替換(status ===「400」)並且確實會觸發。 – bjorkland
我曾試過'==',但那並沒有解決任何問題。 – bjorkland