【发布时间】:2018-05-28 12:03:35
【问题描述】:
我开始学习 ajax。我有 API。 API 返回两种类型的响应 1.当我有数据和系统中没有数据时成功 2.服务器出错时报错(异常)。
在 API 文档中我有类似的内容
字段 - 成功 类型 - 布尔值 响应状态 - 真/假
字段 - 数据 类型 - 对象
在数据对象内部,我还有其他字段。我想做的很简单。系统中有数据时显示数据,无数据时显示错误信息。
根据文档,这是数据在系统中时的示例正确响应
{
"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。你在期待什么? -
这里:
success: function(response, data)- 此回调函数仅将响应作为第一个参数,因此data将在下一行中未定义。在此处删除data将下一行更改为console.log(response.data);。但之前检查是否定义了 response.data -
试试看这个jsfiddle.net/Micio/kvusadfg你的代码问题是这样的:error not err
标签: javascript php jquery json ajax