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。
推薦閱讀:
- 解決golang gin框架跨域及註解的問題
- go 原生http web 服務跨域restful api的寫法介紹
- Nginx 代理解決跨域問題多種情況分析
- 前端面試必會網絡跨域問題解決方法
- vue前後端分離如何解決每次請求session都會變的問題