使用vue2+Axios遇到的一些坑

1. 向服务器请求两次的状况

  • (1)axios的默认请求头是Content-Type: application/json,使用这个请求头会出现向服务器请求两次的状况;
    (2)浏览器会首先使用 OPTIONS 方法发起一个预请求,判断接口是否可以正常通信,若是不能就不会发送真正的请求过来,
    若是测试通信正常,则开始真正的请求;
    浏览器对后台说:我能够请求你吗? ( ̄ˇ ̄) 
    后台说:阔以。( ̄▽ ̄)~*
    结果是:发送原有的GET(POST)请求
    后台说:不阔以。(‵﹏′)
    结果是:报错
  • (3)解决方法:设置axios的默认请求头axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded' (使用qs模块能够不设置,qs模块会本身设置。)
    (4)设置以后,后台不认这个数据格式,因此在传递的时候必须先把数据转换格式;
    // step1. npm install qs
    // step2. 在main.js中,引入qs模块
    import qs from 'qs';
    // 须要时调用qs.stringify()方法
    this.$axios.post('api/login', qs.stringify({ 
        name: 'xxx', 
        password: '********' 
    }).then(res => {
        
    }).catch(err => {
    
    });
相关文章
相关标签/搜索