javascript - 如何处理 axios 中的 401(身份验证错误)并使用react?

标签 javascript reactjs token axios http-status-code-401

我有一个文件 request.js,其中包含 axios ajax 请求的包装器。我正在从多个 react 组件调用请求函数,当其中一个请求失败时,我想刷新 token 并再次重试所有失败的请求。我可以使用拦截器,但我不知道如何实现它。请帮忙。

请求.js

 var client = axios.create({
   baseURL: 'http://192.168.1.3:3000',
     headers: {
     appID: 8,
     version: "1.1.0",
     empID: localStorage.getItem('empID'),
     token: localStorage.getItem('accessToken')
    }
 });

 const request = function(options) {
     const onSuccess = function(response) {
         console.debug('Request Successful!', response);
         return response.data;
     } 
     const onError = function(error) {
         console.error('Request Failed:', error.config);
         if (error.response) {
             console.error('Status:',  error.response.status);
             console.error('Data:',    error.response.data);
             console.error('Headers:', error.response.headers);
         } else {
             console.error('Error Message:', error.message);
         }

         return Promise.reject(error.response || error.message);
     }

     return client(options)
         .then(onSuccess)
         .catch(onError);
         options
 }

 export default request;

最佳答案

如果你想使用拦截器来处理 401 错误,这里是代码片段。

axios.interceptors.response.use(response => {
   return response;
}, error => {
  if (error.response.status === 401) {
   //place your reentry code
  }
  return error;
});

关于javascript - 如何处理 axios 中的 401(身份验证错误)并使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47216452/

相关文章:

javascript - innerHTML 产生未定义,但正确的数据可见

javascript - Node.js Express 强制客户端跳过缓存(刷新)

javascript - 成功访问ajax中的javascript变量

javascript - reactjs 中的渲染函数

facebook - 如何使用 facebook API 获取公共(public)墙贴

javascript - 为什么我的 requestAnimFrame 仍然很慢?

reactjs - Electron + ReactJS + Material-UI 渲染故障

reactjs - TypeScript React 中可重用的布局组件 : Property 'path' does not exist on type 'IntrinsicAttributes & IProps'

php - 在 PHP 中使用正则表达式解析 token

c# - 从零开始的基于 token 的WebAPI理论