0
私はAPIを呼び出して、JavaScriptで結果を期待どおりに戻しています。 400のステータスが返された場合、別のAPIが呼び出されます。これはifステートメントで処理しています。しかし、この "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);
を行うとき、私は私のif文が発射されることはありませんなぜ私は本当にわからない"400"
を入手します!
応答がある:
{ "ステータス":{ "コード": "400"、 "メッセージ": "エラー:結果がクエリに一致しない"、 "応答"}、{ "結果": ""}}
私は今これを注視していますし、本当に洞察に感謝します!
コンソールログは文字列またはintとして400を返しますか?あなたが厳密な比較 '==='を使っているからです。ちょうど '==' –
を使ってみてください興味深い - 私はちょうどif(!(e.response.length))で置き換えようとしました(状態=== "400")、それは起動します。 – bjorkland
私はちょうど '=='を試みましたが、それは何も解決しませんでした。 – bjorkland