首页 > 解决方案 > 关于 concole.log 中显示错误时的行为

问题描述

前端使用 Vue 构建,API 服务器使用 Laravel 构建。

如果我在前面用 try 和 catch 包围 API 调用,并在捕获它时在 console.log 中显示错误,则只显示字符串,但不显示对象的内容。但是当我在console.log中显示error.response.data时,会显示响应信息。

在执行 console.log (error) 时,为什么我看不到对象的信息(error.response.data 等)?

Vue

try {
    var response = await axios.get('/user/1')

} catch(error) {
    console.log(error)
    console.log(error.response.data)
}

拉拉维尔

public function showUser(Request $request, $user_id)
{
    $validator = \Validator::make($user_id, [
        'user_id'        => 'require',
    ]);

    if ($validator->fails()) {
        return response()->json([
            'status' => 422,
            'errors' => $validator->errors()
        ], 422);
    }

    return User::find($user_id');
}

标签: javascriptlaravel

解决方案


您不需要在 axios 调用上使用 try catch。改为这样做:

axios.get('/user/1')
    .then(response => {
        console.log(response.data);
    })
    .catch(error => {
        console.log(error.response.data); // your failed validation errors will be here
    })
    .finally(() => {
        // this will run always.
    });

推荐阅读