使用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(); }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。