之所以发生401时无法获取到error.response是因为后端设置的cors允许跨域放在了切面层,验证token却在拦截器层,当我们发送一个过期的token的时候,首先会在拦截器层验证token的有效性,如果无效则返回,这时候都还没走到切面层设置的允许跨域,所以报了跨域问题,并且无法获取error.response。解决方案: 后端需要把允许跨域设置在...
要设置响应拦截器,我们可以使用axios.interceptors.response.use方法。这个方法接受两个参数,第一个参数是成功回调函数,第二个参数是失败回调函数。下面是一个设置响应拦截器的示例代码: axios.interceptors.response.use(response=>{// 对返回的数据进行处理returnresponse;},error=>{// 对请求错误进行处理returnPromise....
// 创建axios实例constinstance=axios.create();// 添加响应拦截器instance.interceptors.response.use(response=>{// 响应成功处理逻辑returnresponse;},error=>{// 响应错误处理逻辑if(error.response){// 响应返回了错误状态码if(error.response.status===404){// 处理404错误console.log("请求的资源不存在");...
axios.interceptors.response.use(response =>Promise.resolve(response), error=> {//这里对 error 预期结果是包含具体错误信息和状态码if(error && error.response &&error.response.status) {switch(error.response.status) {case500://do something...breakcase404://do something...breakdefault://do something...
axios中设置拦截(interceptors.response)error.respon。。。axios.interceptors.response.use(response => Promise.resolve(response),error => { // 这⾥对 error 预期结果是包含具体错误信息和状态码 if (error && error.response && error.response.status) { switch (error.response.status) { case 500:// ...
axios.interceptors.response.use( response => { if (response.data.code === 'OK') { return response } else if (response.data.code === 'ERROR') { console.log(response.data.data) return Promise.reject(response.data) } }, error => { ... }) 然后把 axios 封装了一层 export const Comm...
error=>{returnPromise.reject(error);});// 添加响应拦截器axios.interceptors.response.use(response=>{// 响应正常时候就从 pendingRequest 对象中移除请求removePendingRequest(response);cacheResInterceptor(response);returnresponseHandle[response.data.code||'default'](response);},error=>{// 从 pending 列表...
service.interceptors.response.use( response=>{ ... }, error=>{ console.log(error) } ) 此处在打印error时发现error没有status, message等属性,如下 但是在请求响应中是能看到返回的结构的,如下 结论:此处需要获得响应体需要使用error.response,结构如下 ...
;// response interceptorrequest.interceptors.response.use((response)=>{constdataAxios=response.data;// 这个状态码是和后端约定的const{code}=dataAxios;// 根据 code 进行判断if(code===undefined){// 如果没有 code 代表这不是项目后端开发的接口returndataAxios;// eslint-disable-next-line no-else-...