【问题标题】:How to handle custom errors from JSON response using JavaScript?如何使用 JavaScript 处理来自 JSON 响应的自定义错误?
【发布时间】:2021-05-26 22:46:56
【问题描述】:

我正在尝试根据使用 Fetch API 后在 JSON 响应中收到的错误打印出自定义错误消息。

这是我在尝试使用数据库中已有的电子邮件提交数据后收到的错误消息:

{"message":"Invalid Request","messages":{"email":["validation.unique"]}}

这是另一个错误,说电子邮件根本无效:

{"message":"Invalid Request","messages":{"email":["validation.email"]}}

我正在尝试向用户打印一个特定错误,以说明该电子邮件已在使用中。我需要这样的东西。

try {
  ...
} catch(error) {
  if(error.message == "validation.unique") {
  ... print error saying email already in use ...
  } elseif(error.message == "validation.email") {
  ... print error saying email is not valid ...
  }
}

如何检查 if 语句中的 JSON 响应?发送响应的服务器正在使用 Laravel。

【问题讨论】:

  • 你在error有什么?
  • 这是一个 json 响应:{"message":"Invalid Request","messages":{"email":["validation.unique"]}}
  • 您的代码不起作用?

标签: javascript json error-handling


【解决方案1】:

我认为你可以使用 'JSON.parse()'。

function test(tmpJson) {
    var tmpArr = JSON.parse(tmpJson);
    if (tmpArr.message == "Invalid Request") {
        var tmpE = tmpArr.messages.email;
        if (tmpE == "validation.unique") {
            alert('email already in use');
        } else if (tmpE == "validation.email") {
            alert('email is not valid');
        }
    } else {
        //success
    }
}

var testJson = '{"message":"Invalid Request","messages":{"email":["validation.unique"]}}';

test(testJson);

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2021-05-30
    • 2020-07-25
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多