javascript - jquery ajax get 没有数据时显示错误信息

标签 javascript php jquery json ajax

我开始学习 ajax。我有 API。 API返回两种类型的响应 1.当我有数据时成功,当系统中没有数据时成功 2. 服务器出错时报错(异常)。

在 API 文档中我有这样的内容

字段 - 成功 类型 - bool 值 响应状态 - 真/假

字段-数据 类型 - 对象

在数据对象内部我还有其他字段。我想做的很简单。系统有数据时显示数据,无数据时显示错误信息。

根据文档,这是数据在系统中时的正确响应示例

{
"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");
    }
 });
});

最佳答案

首先根据 the documentation 将您的成功函数更改为只有一个参数第二个参数(在本例中名为 data)将是 textStatus

然后您可以检查响应的属性以了解您是否有数据或响应是否有错误

success: function (response) {
    if (response.err != undefined) {
        console.log("Error");
    }

    if (response.data != undefined) {
        console.log("There is data");
    } else {
        console.log("No data")
    }
}

请注意,在您的示例数据中,有错误的响应仍然有 success:true,这对我来说似乎有点愚蠢,因为如果有错误,它不应该成功。

关于javascript - jquery ajax get 没有数据时显示错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47812668/

相关文章:

php - 无法访问字符串变量的属性

c# - 将 JavaScript 数组传递给 IEnumerable 会给出空值

php - 当有可用更新图像时,如何防止旧图像出现在页面重新加载上

javascript - 如何更改雅虎邮箱、注销 URL?

php - 升级到 3.0.0 后无法连接到 Cassandra

.net - 字符编码问题 - PHP 输出,由 .NET 通过 HttpWebRequest 读取

c# - 添加dom后表达注释重新绑定(bind)表单

检查值是否等于两个之一的 JavaScript 简写

javascript - 在 Jquery 中将 $(this) 与 css 类选择器一起使用

javascript - FileZilla 客户端的 Microsoft JScript 运行时错误