使用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 => {
    
    });
相關文章
相關標籤/搜索