我正在使用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
答案 0 :(得分:1)
您的服务器响应似乎包含data
键。为了从HTTP协议status
和headers
中分离出应用程序数据,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);
}