使用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();
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。

点赞(0)

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部