第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

axios中為所有請求帶上Token頭

標(biāo)簽:
JavaScript Vue.js
  • 开发环境:vue-cli
  • 主要插件:axios
  • 应用场景:每次请求接口时,需要在headers添加对应的Token验证
探索过程如下:

在main.js中引入axios,主动请求一次签发Token的接口并设置到axios的默认headers中,以此达到后续的axios请求都带上Token头,如下:

import axios from 'axios'
axios.post('signToken', {
  "NickName": "xxxx",
  "Password": "xxxx",
  "RequestSign": "B858C5EEE7FD4D37C635FB55841ACA59"
}).then(res => {
  axios.defaults.headers.common['Authorization'] = res.headers.authorization
})
//实例化Vue
new Vue({
  el: '#app',
  router,
  components: {
    App
  },
  template: '<App/>'
})

组件内部有如此方法:

methods: {
      getBanner() {
        axios.post('getBanner', {
          HospitalId: 1
        }).then(res => {
          console.log(res)
        })
      }
    }

运行之后结果如下:

图片描述
图片描述

发现headers中并没有带上预期的Token,后来仔细回想,终于得到结论:axios.then属于promise,是异步线程(详情参考廖雪峰老师是的介绍),通俗点讲就是在执行new Vue()之前,并未执行

axios.defaults.headers.common['Authorization'] = res.headers.authorization

茅塞顿开,于是改版,把new Vue()加入到.then函数中:

axios.post('signToken', {
  "NickName": "xxxx",
  "Password": "xxxx",
  "RequestSign": "B858C5EEE7FD4D37C635FB55841ACA59"
}).then(res => {
  axios.defaults.headers.common['Authorization'] = res.headers.authorization
  //实例化Vue
  new Vue({
    el: '#app',
    router,
    components: {
      App
    },
    template: '<App/>'
  })
})

Let's go on:
图片描述
图片描述

ok 已经操作成功 取到了我们的banner图啦~至此探索就结束了,但是依然有个小问题哦,如果你给你的谷歌内核装了Vue-Devtools,会发现捕捉不到vue实例了:
图片描述
我当时也是心里一慌,不过后来求助于vue官方论坛的老司机,他不疾不徐地告诉我,你试试Refresh(手动白眼)
图片描述
至此才算真的圆满结束了,在所有组件内的axios都能带上我们默认设置的Token头了。

點(diǎn)擊查看更多內(nèi)容
14人點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消