精华内容
下载资源
问答
  • axios获取状态码

    千次阅读 2019-12-31 10:02:57
    axios.interceptors.response.use(config => { // 返回请求正确的结果 return config; console.log(config) }, error => { console.log(error.response.status) if(error....
    axios.interceptors.response.use(config => {
            // 返回请求正确的结果
            return config;
            console.log(config)
        }, error => {
            console.log(error.response.status)
            if(error.response.status===500) {
                Message.error('服务器错误,请稍后重试!');
            }
    })
    
    展开全文
  • 主要介绍了axios 处理 302 状态码的解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • axios 处理 302 状态码

    万次阅读 2018-04-09 10:20:31
    比如说浏览器打开了一个单页面(SPA)应用,过了一段时间token(或者session)过期了,这个时候页面上发起 Ajax请求之后,后端返回302状态码跳转到login页面。 我这是使用的是 Vue + axios ,发现 axios 无法拦截到 ...

    比如说浏览器打开了一个单页面(SPA)应用,过了一段时间token(或者session)过期了,这个时候页面上发起 Ajax请求之后,后端返回302状态码跳转到login页面。 我这是使用的是 Vue + axios ,发现 axios 无法拦截到 302请求,下面是处理的过程。

    思考

    google axios 302 handle 看到 axios github 上的两个讨论

    得到的结论就是:浏览器发送的ajax请求,服务端返回了302状态码,浏览器会自行跳转,我们无法通过 js 库(jquery, axios) 直接得到并自定义处理流程,只能等到浏览器重定向之后的url获取相应信息。

    axios 发送ajax --> 
    server 返回302和location --> 
    浏览器请求新的url --> 
    服务端返回200 --> 
    axios 获取结果

    那么怎么解决呢?需要服务端配合解决

    Brower (ajax and not auth) --> 
    server判断是ajax请求,未登陆,返回 401状态码 --> 
    浏览器 axios 拦截401,并且通过js 跳转到 /login

    解决

    浏览器端, axios 增加拦截器

    axios.interceptors.response.use((response) => {
        return response;
    }, function (error) {
        if (401 === error.response.status) {
            window.location = '/login';
        } else {
            return Promise.reject(error);
        }
    });
    
    axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

    后端代码,使用flask框架,看个流程就行,验证请求是否是 ajax 和 未登陆,然后返回401状态码

    from flask import Blueprint, request, jsonify, make_response, abort
    from flask_login.utils import current_user, current_app
    apibp = Blueprint('api', 'api_bp')
    
    # 主要逻辑
    def bp_login_required():
        if not current_user.is_authenticated:
            if request.is_xhr:
                abort(401)
            else:
                return current_app.login_manager.unauthorized()
    
    apibp.before_request(bp_login_required)
    
    @apibp.route("/report/domains/<month>/", methods=["GET"])
    def monthly_domains(month):
        return jsonify({})

    ref

    展开全文
  • axios状态码拦截网址 https://www.jianshu.com/p/43fc396b2fa7

    axios状态码拦截网址
    https://www.jianshu.com/p/43fc396b2fa7

    展开全文
  • vue axios获取状态码(success,error)

    万次阅读 2018-11-21 14:23:02
    项目中遇到个小需求,当页面半个小时内无任何操作的时候,token自动失效,毫无疑问是要跳到登录页的,token失效后后端给我的状态码是412,那么好,这个412我就是获取不到,给中console.log就是打印不出我想要的...

        项目中遇到个小需求,当页面半个小时内无任何操作的时候,token自动失效,毫无疑问是要跳到登录页的,token失效后后端给我的状态码是412,那么好,这个412我就是获取不到,给中console.log就是打印不出我想要的status,最终还是找到了我想要的。

        获取状态有两种写法:这里的api为配置的api文件,在main.js中引入,我的配置方法链接在这axios的API配置文件

    import * as api from './Api'

        一、handleSuccess,获取成功的状态码,response里全是你想要的信息,这里使用了elementUI

    api.allHandle.handleSuccess = function (response) {
      let body = response.data;
      switch (body.event){
        case 'SUCCESS':
          if(callback){
            callback(body.data);
          }
          break;
        case 'ERROR':
          Vue.prototype.$notify.error({
            title: '操作提示',
            message: body.describe
          });
          if(error){
            error(body);
          }
          break;
        case 'EXCEPTION':
          Vue.prototype.$notify.error({
            title: '操作提示',
            message: body.describe
          });
          if(error){
            error(body);
          }
          break;
        case 'UNAUTHORIZED':
          Vue.prototype.$notify.error({
            title: '操作提示',
            message: body.describe
          });
          if(error){
            error(body);
          }
          router.push({name:'userlogin'});
          break;
        default:
          Vue.prototype.$notify.error({
            title: '操作提示',
            message: body.describe
          });
      }
    };

        二、handleError,在这里打印error是打印不出来的,下面的图并不是我想要的东西

        几经周折,打印error.response,注意这个response很重要,我忽略了他,所以打印不出来

        没错,这才是我想要的,获取到状态码判断一下就好了。

    api.allHandle.handleCatch = function (error) {
      console.log(error.response.status);
      if(error.response.status===412){
        router.push({name:'userlogin'});
      }
    };

        

     

    展开全文
  • axios post 400 状态码

    2019-09-25 21:26:49
    1、400状态码 400的主要有两种形式: (1)、bad request意思是“错误的请求"; (2)、invalid hostname意思是"不存在的域名”。 2、axios axios默认的请求头的格式是: application/json 若后端的...
  • nodejs服务端发送429状态: extendInfo (req, res) { res.status(429).json('Too many requests, please try again later.') }, vue客服端 export const ajaxPost=(url, params) => {...
  • 今天小编就为大家分享一篇解决axios发送post请求返回400状态码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • axios如何获取后端接口返回的状态码以及相关信息 axios的github:https://github.com/axios/axios
  • import axios from 'axios' import router from './../router' import { Message } from 'element-ui' // 设置axios全局默认的BASE-URL, 只要设置了全局的默认base_url,以后的请求会自动拼接上base_url // ------...
  • 描述:在 Chrome 的页面调试过程中查看到失败的请求,状态是请求被取消,这个请求的请求头中出现 Provisional headers are shown 此行警告。 原因分析 文件上传时,如果文件稍大或者网络不稳定导致掉包,可能会...
  • // axios 响应拦截器,状态码判断axiosIns.interceptors.response.use(function (response) {const status = response.statusif (status ===200) {return Promise.resolve(response)}else if (status ===403) {let ...
  • axios发送post请求返回400状态码

    千次阅读 2018-10-16 17:25:42
    axios发送post请求返回400状态码 今天在用 axios 发送一个跨域的post请求时,遇到了一个坑:Uncaught (in promise) Error: Request failed with status code 400。 前台代码如下: this.$http.post({ url:'/v1/...
  • 因为有自定义请求头userId和token,所以先会进行options,options后服务端返回了,但是前端浏览器没有进行post,因为后台设置的headers为*,可能ios13/安卓10一下浏览器识别不出来后台允许有自定义请求头的存在 ...
  • vue中的axios拦截器拦截302状态码

    千次阅读 2019-06-12 15:06:05
    项目中前端需要统一处理后端返回的状态码并给出弹窗提示,需要在全局环境下对axios设置拦截器。 类似于401、403、500等状态码都可以在error回调中捕获到,但是302状态码是捕获不到的,因为当状态时302时,浏览器...
  • 项目开发中,需要判断一下token是否有效,如果是一个无效的token,那么后台后返给我http状态码为401的错误,注意这里是http状态码,也就说只有是2xx系列的才算是请求成功,所以返回的401,此时浏览器肯定时报错的,...
  • Vue.js axios响应拦截获取返回状态码

    千次阅读 2020-03-16 14:49:43
    axios响应拦截获取返回状态码方式整理 方法一 axios.interceptors.response.use( response => { console.log('拦截器响应成功') return response }, error => { console.log('拦截器响应失败') ...
  • axios在catch中获取响应状态码

    万次阅读 2019-03-05 10:30:08
    以下 是 对 axios 请求 错误的处理 ( 困扰我好长时间 的 问题 终于 解决了!) axios.get('/user/12345') .catch(function (error) { if (error.response) { // The request was made and the server responded ...
  • 研究状态码规则围绕我的脑袋有些时间了。 加上最近比较不忙,开始了这方面的研究。 后端用的是直接跑过的node框架,express。可以直接参考express官方网站:http://www.expressjs.com.cn/starter/generator.html...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,370
精华内容 4,148
关键字:

axios状态码