Я звоню в 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"
так что я действительно не знаю, почему мой если заявление никогда не стрелять!
Отклик:
{ "Статус": { "код": "400", "сообщение": "Ошибка: не найдено результатов по запросу"}, "ответ": { "Результаты": ""}}
Я уже смотрел на это сейчас, и был бы очень признателен за понимание!
Ваш консольный журнал возвращает 400 как строку или int? Потому что вы используете строгое сравнение '==='. Попробуйте использовать только '==' –
Интересно - я просто попытался заменить (статус === "400") на if (! (E.response.length)), и это срабатывает. – bjorkland
Я пробовал просто '==', но это ничего не решило. – bjorkland