无法正确读取API调用的响应(JS)

时间:2017-02-16 16:49:13

标签: javascript http-status-codes

我正在调用API并在JavaScript中按预期返回结果。如果返回400状态,我会调用另一个API,我正在使用if语句。但是,这个“if”永远不会被触发,我认为是因为我的反应被阅读的方式。我的代码是:

 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语句永远不会被解雇!

回复是:

{“status”:{“code”:“400”,“message”:“错误:没有与查询匹配的结果”},“回复”:{“结果”:“”}}

我现在已经盯着这一段时间了,非常感谢任何见解!!

1 个答案:

答案 0 :(得分:1)

"成功"请求成功时调用方法。当返回400时,这并不成功。使用"错误"而不是提供在请求失败时执行的函数。