如何使用javascript / axios

时间:2019-09-16 11:15:19

标签: javascript laravel forms vue.js axios

我正在使用axios将表单数据发布到Laravel。

当前,如果成功,我可以访问响应,但是访问错误响应时遇到麻烦。在开发工具中,我可以看到我的网络> 响应具有以下内容:

{"success":false,"data":{"message":"Token mismatch","refresh":true}}

我正在尝试访问刷新进行布尔比较,因此如果为true,则将重新加载页面。我该如何访问?

我尝试了以下操作:

console.log(error.response);
console.log(error.response.data);
console.log(error.response.data.message);
console.log(error.data);
console.log(error);

分别记录如下:

[object Object]
[object Object]
undefined
undefined
Error: Request failed with status code 419

3 个答案:

答案 0 :(得分:1)

您的服务器响应似乎包含data键。为了从HTTP协议statusheaders中分离出应用程序数据,Axios还uses this key来使用。

假设您要从错误响应中获取message(即“令牌不匹配”),请尝试使用以下路径进行访问:

error.response.data.data.message

答案 1 :(得分:1)

添加

{{csrf_field()}} 

根据您的发帖要求避免419错误

答案 2 :(得分:0)

根据[https://github.com/axios/axios#handling-errors]文档,该错误在响应中可用。 使用try catch代替

try {
    apiRes = axios.get('https://www.apponative.con');
  } catch (err) {
    console.error("Error response:");
    console.error(err.response.data);    // ***
    console.error(err.response.status);  // ***
    console.error(err.response.headers); // ***
  } finally {
    console.log(apiRes);
  }