vue中的跨域問題重绷,axios和vue.config.js的devServer.proxy

跨域:不同源即跨域

同源:域名沸停,協(xié)議,端口均相同

瀏覽器的同源策略昭卓,是瀏覽器對 JavaScript 施加的安全限制愤钾。

http://www.reibang.com/p/cfbccb0adae9

開發(fā)、測試環(huán)境的跨域問題:配置devServer.proxy

vue-cli3中將擴(kuò)展和基礎(chǔ)配置都寫在根目錄的vue.config.js中候醒。vue.config.js 是一個可選的配置文件能颁,如果項目的 (和 package.json 同級的) 根目錄中存在這個文件,那么它會被 @vue/cli-service 自動加載倒淫。https://cli.vuejs.org/zh/config/#vue-config-js

axios配置

主要在于axios.defaults.baseURL伙菊,其他都是個人記錄,一些封裝比如token之類的

在開發(fā)/測試環(huán)境中,因?yàn)橄旅鏁褂胮roxy方法镜硕,所以此處的baseURL不太重要运翼,它在proxy中會被替換,隨便寫也沒事

// 創(chuàng)建 axios 實(shí)例 開發(fā)域名
const wristbandService = axios.create({
  baseURL: '',                                   //設(shè)置為空
  // baseURL: 'http://172.31.231.91:8080/',      //設(shè)置baseURL相當(dāng)于給所有此類請求前加上baseURL兴枯,這里可以用導(dǎo)入的變量
  timeout: 6000,
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  }
})

// 下面這些都和跨域無關(guān)
wristbandService.interceptors.request.use(config => {
  const token = Vue.ls.get(ACCESS_TOKEN)
  if (token) {
    config.headers['Authorization'] = 'Bearer ' + token // 讓每個請求攜帶自定義 token 請根據(jù)實(shí)際情況自行修改
  }
  return config
}, err)

wristbandService.interceptors.response.use(response => {
  return response.data
}, err)

const installer = {
  vm: {},
  install(Vue) {
    Vue.use(wristbandService)
  }
}

export { wristbandService as WBaxios}               // 最后封裝完的請求是WBaxios

vue.config.js中devServer配置

注意:devServer用于本地開發(fā)環(huán)境南蹂,生產(chǎn)環(huán)境是不生效的。
https://cli.vuejs.org/zh/config/#devserver-proxy

在下面的代碼里:

1念恍、proxy會攔截所有url中可以成功匹配到 '/api/wristband' 的請求六剥。(proxy采用正則匹配,一旦url中包含你要的字符串則停止向下匹配峰伙,詳查proxy匹配規(guī)則)

2疗疟、它會把攔截到的請求中的baseUrl替換為此處的target

3、changeOrigin:true 表示跨域

  devServer: {
    // development server port 8000
    port: 8000,
    proxy: {
        '/api/wristband': {
            target: 'http://172.xx.xxx.xx:8080/',     // 攔截到'api/wristband'的瞳氓,將axios中baseURL替換成target
            ws: true,                                 // proxy websockets
            changeOrigin: true,                       // 是否跨域
            // pathRewrite: {                         // 重寫策彤,根據(jù)需要
            //   '^/api/wristband': '/api/newpath', 
            // }
        },
    }
  },
}

api調(diào)用

import { WBaxios } from 'xxxxx'     // 導(dǎo)入封裝的請求

export function getDataOfIndicatorChart (params) {
  return WBaxios({                  // 請求
    url: `/api/wristband/test`,     //此處請求的url
    method: 'get',
    params: { ...params }
  })
}

重點(diǎn)

WBaxios發(fā)出請求時,會將此處的url前面加上配置過的baseURL匣摘,這一個整體店诗,會被proxy檢測攔截,proxy操作過后就可以跨域了

生產(chǎn)(線上)環(huán)境的跨域問題:后端Nginx反向代理/cors跨域配置

由于devServer只用于本地環(huán)境音榜,生產(chǎn)環(huán)境是不生效的庞瘸,所以上面所說的devServer.proxy方法無效

axios配置

這里baseURL要配置成我們實(shí)際請求的服務(wù)器端口

// 創(chuàng)建 axios 實(shí)例 開發(fā)域名
const wristbandService = axios.create({
  baseURL: 'http://172.xx.xxx.xx:8080/',      //設(shè)置baseURL相當(dāng)于給所有此類請求前加上baseURL,這里可以用導(dǎo)入的變量
  timeout: 6000,
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  }
})

vue.config.js不用配置proxy赠叼,api調(diào)用相同擦囊,此時請求的地址是‘http://172.xx.xxx.xx:8080/api/wristband/test’。重點(diǎn)是后端要進(jìn)行跨域相關(guān)配置嘴办!

antd-vue-prohttps://github.com/vueComponent/ant-design-vue-pro/issues/91
簡潔https://www.cnblogs.com/yaowen/p/10559586.html
.envhttps://blog.csdn.net/Liu_yunzhao/article/details/94077271
vue-cli3 config https://gitee.com/mrpzx/vue-cli3-config#proxy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瞬场,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子涧郊,更是在濱河造成了極大的恐慌贯被,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妆艘,死亡現(xiàn)場離奇詭異彤灶,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)双仍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評論 3 392
  • 文/潘曉璐 我一進(jìn)店門枢希,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人朱沃,你說我怎么就攤上這事。” “怎么了逗物?”我有些...
    開封第一講書人閱讀 163,316評論 0 353
  • 文/不壞的土叔 我叫張陵搬卒,是天一觀的道長。 經(jīng)常有香客問我翎卓,道長契邀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,294評論 1 292
  • 正文 為了忘掉前任失暴,我火速辦了婚禮坯门,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逗扒。我一直安慰自己古戴,他們只是感情好矩肩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評論 6 390
  • 文/花漫 我一把揭開白布现恼。 她就那樣靜靜地躺著,像睡著了一般黍檩。 火紅的嫁衣襯著肌膚如雪叉袍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,245評論 1 299
  • 那天刽酱,我揣著相機(jī)與錄音喳逛,去河邊找鬼。 笑死棵里,一個胖子當(dāng)著我的面吹牛艺配,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衍慎,決...
    沈念sama閱讀 40,120評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼转唉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了稳捆?” 一聲冷哼從身側(cè)響起赠法,我...
    開封第一講書人閱讀 38,964評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乔夯,沒想到半個月后砖织,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,376評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡末荐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評論 2 333
  • 正文 我和宋清朗相戀三年侧纯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甲脏。...
    茶點(diǎn)故事閱讀 39,764評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡眶熬,死狀恐怖妹笆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情娜氏,我是刑警寧澤拳缠,帶...
    沈念sama閱讀 35,460評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站贸弥,受9級特大地震影響窟坐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绵疲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評論 3 327
  • 文/蒙蒙 一哲鸳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盔憨,春花似錦徙菠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驯用,卻和暖如春脸秽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蝴乔。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評論 1 269
  • 我被黑心中介騙來泰國打工记餐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人薇正。 一個月前我還...
    沈念sama閱讀 47,819評論 2 370
  • 正文 我出身青樓片酝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親挖腰。 傳聞我的和親對象是個殘疾皇子雕沿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評論 2 354