私はajaxの学習を始めました。私はAPIを持っています。 APIは2種類のレスポンスを返す 1.データがあるときとシステムにデータがないときの処理 2.サーバーエラーが発生したときのエラー(例外)。 APIドキュメントでjquery ajaxのデータがないときにエラーメッセージを表示
私はこの
フィールドのようなものがある - 成功 タイプ - ブール レスポンスステータス - 真/偽
フィールド - データ タイプ - 私が持っているデータ・オブジェクト内のオブジェクト
を他のフィールド。私がしたいことは簡単です。それがシステムにあるときにデータを表示し、データがないときにエラーメッセージを表示します。
データがシステム
{
"success": true,
"data": {
"office_id": 1,
"office_type": "s",
"registrar_name": null,
"registrar_mobile": null,
"registrar_email": null
}
}
と正しい応答データがシステムにありません
{"success": true}
又は
{
"success": true,
"err": "error message"
}
にあるときにドキュメントによれば、これはサンプル正しい応答でありますこれは私がこの時点で得たものです。システムでmydataを見つけたら、フィールドを適切に表示します。しかし、システムにデータがない場合、私は定義されていません。このコードで何が問題になっていますか?
$('#test').on('click', function(){
$.ajax({
dataType: 'json',
type:"GET",
url:"http://mywebsite.com/api/mydata",
success: function(response, data) {
console.log(data.data);
},
err: function(response, data) {
console.log("no data");
}
});
});
'success == false'のとき' data'というプロパティはなく、 'success'と' err'だけです。あなたは何を期待していますか? – George
ここにあります: 'success:function(response、data)' - このコールバック関数は最初のパラメータとして応答を取得するだけなので、 'data'は次の行で定義されません。 'data'をここで' console.log(response.data);の次の行に変更します。しかし、response.dataが定義されているかどうかを前に確認してください – Jeff
このhttps://jsfiddle.net/Micio/kvusadfg/を見てみてください。エラーはありませんエラー:エラーではありません – Leo