繁体   English   中英

如何使用javascript / axios从服务器访问错误响应

[英]How to access error response from server using javascript / axios

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

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

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

我正在尝试访问refresh进行布尔比较,因此,如果它为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

您的服务器响应似乎包含data密钥。 Axios还使用此密钥来将应用程序数据与HTTP协议statusheaders分开。

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

error.response.data.data.message

{{csrf_field()}} 

与您的帖子请求一起避免419错误

根据[ 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);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM