Axios-验证返回的显示错误为[object Object]

时间:2019-11-11 16:47:51

标签: javascript vue.js vuejs2 axios

在我的api中,我有:

$request->validate([
        'firstname' => 'required',
        'lastname' => 'required',
        'username' => 'required|unique:users',
        'email' => 'required|email|unique:users',
        'password' => 'required'
    ]);

然后我在axios with上发现了错误:

.catch(error=>{
    console.log("Error: " + error.response.data.errors)
})

但是它将给我:Error: [object Object]

如果我有意输入数据库中已经存在的username,然后将捕获更改为

.catch(error=>{
    console.log("Error: " + error.response.data.errors.username)
})

它将显示Username is already taken,这是一件好事。

这意味着我必须手动指定error.response.data.errors.<x error>才能显示消息,因为如果我输入data.errors.username,然后电子邮件是验证中的问题,控制台将说{{1 }}很有意义,因为除了Error: undefined之外没有data.errors.username

有没有一种方法可以在不手动指定的情况下访问和显示返回的错误?多谢!

1 个答案:

答案 0 :(得分:1)

为了显示错误,请尝试使用Object.values(errors)来获取对象值并返回一些数组,然后使用flat()方法从中获取一个数组,最后使用{{1 }}方法如下:

join()