Vue使用axios添加請求頭方式

使用axios添加請求頭

import axios from 'axios'
const service = axios.create({
  baseURL: process.env.VUE_APP_API, // 請求的接口
  timeout: 100000 // 請求超時時間
})
 
// 使用攔截器,定義全局請求頭
service.interceptors.request.use(config => {
  // 在請求頭中添加token
  config.headers.Authorization = window.localStorage.getItem("user")
  return config
})
// 設置 Vue.prototype.$http 為 axios 的別名:
Vue.prototype.$http=service
      this.$http({
        url: "url", 
        params: {
          bookNumber: this.booknum
        }
      })
        .then(res => {
        // 成功
        })
        .catch(err => {
        // 失敗
        });

axios添加自定義頭部出現的問題

在瀏覽器的http的 GET, POST的跨域請求中,添加自定義頭部,發送不是字符串,fromData的數據時,都是非簡單請求。

瀏覽器都預先發出OPTIONS(預檢安全請求)。

所以我們在axios中添加自定義頭部時候需要後端返回OPTIONS請求允許才進行POST或GET請求。

後端中隻需要對OPTIONS請求做出允許自定義頭部和狀態200即可。

if(req.method==='OPTIONS'){
        res.writeHead(200,{
            //允許跨域
            "Access-Control-Allow-Origin":"*",
            "Access-Control-Allow-Credentials":"true",
            //允許請求類型
            "Access-Control-Allow-Methods":"*",
            //允許自定義頭部
            'Access-Control-Allow-Headers':"*",
            'Access-Control-Expose-Headers':'*'
        })
        res.end();
    }

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: