来自响应JSON的Axios捕获错误未定义

时间:2019-03-13 09:04:15

标签: javascript php json axios

我正在从我的PHP返回自定义响应,但我不知道如何为我的页面使用这些响应。我试图使用console.log查看状态和消息,但没有运气。

if ($message->send()){
    return response()->json([
      'status' => 'success',
         'msg' => 'Message send =)'
   ],201);
}else{
    return response()->json([
      'status' => 'error',
         'msg' => 'Message did not send =('
   ],422);
}

以及在我的脚本中

axios.post('url',params)
.then(function(){
      console.log('send');
})
.catch(function(error){
    if (error.response){
        console.log(error.response.data.msg);
    }else if(error.request){
        console.log(error.response.data.msg)
    }else{
        console.log(error.response.data.msg);
    }
});

我想获取状态信息 但是console.log(error.response.data.msg)是未定义。 我是在做错误的返回还是在错误的console.log()?

感谢帮助。

我已修复! 我将功能(错误)替换为功能(响应)。 就是这样

.then(function(response){
      console.log('response.data.msg');
      console.log('response.data.status');
})
.catch(function(response){
      console.log('response.data.msg');
      console.log('response.data.status');
});

1 个答案:

答案 0 :(得分:0)

按照错误响应格式,您需要使用error.response.message来获取错误的详细信息。至少,尝试console.log(error.response)以了解发生了什么。希望有帮助!