webpack配置proxy反向代理,解決跨域問題

目的:為了解決前端和后端聯(lián)調(diào)數(shù)據(jù),出現(xiàn)的跨域問題,通過配置反向代理谦疾,可以更好的聯(lián)調(diào)數(shù)據(jù)

webpack官網(wǎng)

常見跨域場景

(1)同一域名,不同端口
http://www.demo.com:8000/a.js
http://www.demo.com/b.js
(2)同一域名犬金,不同協(xié)議
http://www.demo.com/a.js
https://www.demo.com/b.js
(3)域名和域名對應(yīng)相同ip
http://www.demo.com/a.js
http://127.0.0.1/b.js
(4)不同域名
http://www.demo1.com/a.js
http://www.demo2.com/b.js

前端常用解決方案

(1)通過jsonp跨域:只能發(fā)get請求念恍,數(shù)據(jù)量不能超過4K
(2)跨域資源共享(CORS):需服務(wù)端設(shè)置Access-Control-Allow-Origin即可六剥,前端無須設(shè)置,若要帶cookie請求:前后端都需要設(shè)
(3)反向代理:在瀏覽器中創(chuàng)建了代理服務(wù)器峰伙,缺點(diǎn)渲染效率降低

反向代理
配置反向代理
//vue-cli3.0 里面的 vue.config.js做配置
const url = 'http://192.168.0.111:9999' //服務(wù)器端接口地址
module.exports = {
  //...
  devServer: {
    proxy: {
        '/api': {                //這里最好有一個 /
            target: url,         // 服務(wù)器端接口地址
            ws: true,            //如果要代理 websockets疗疟,配置這個參數(shù)
            secure: false,       // 如果是https接口,需要配置這個參數(shù)
            changeOrigin: true,  //是否跨域
            pathRewrite:{'^/api':''}
        }
    }
  }
};

此時訪問的接口地址在本地被解析為localhost:8080/api/***

訪問的真實(shí)地址是http://192.168.0.111:9999***

正向代理隱藏真實(shí)客戶端地址瞳氓,反向代理則隱藏真實(shí)服務(wù)端地址

詳情

http://192.168.0.111:9999上有后端服務(wù)的話策彤,你可以這樣啟用代理:

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': 'http://192.168.0.111:9999'
    }
  }
};

請求到/api/users現(xiàn)在會被代理到請求http://192.168.0.111:9999/api/users

如果你不想始終傳遞 /api 匣摘,則需要重寫路徑:

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'http://192.168.0.111:9999',
        pathRewrite: {'^/api' : ''}
      }
    }
  }
};

默認(rèn)情況下店诗,不接受運(yùn)行在HTTPS上,且使用了無效證書的后端服務(wù)器音榜。如果你想要接受庞瘸,修改配置如下:

module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': {
        target: 'https://other-server.example.com',
        secure: false
      }
    }
  }
};

如果你想要代理多個路徑特定到同一個 target 下,你可以使用由一個或多個「具有 context 屬性的對象」構(gòu)成的數(shù)組:

module.exports = {
  //...
  devServer: {
    proxy: [{
      context: ['/auth', '/api'],
      target: 'http://192.168.0.111:9999',
    }]
  }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赠叼,一起剝皮案震驚了整個濱河市擦囊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嘴办,老刑警劉巖瞬场,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涧郊,居然都是意外死亡泌类,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門底燎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃榨,“玉大人,你說我怎么就攤上這事双仍∈嘞#” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵朱沃,是天一觀的道長苞轿。 經(jīng)常有香客問我,道長逗物,這世上最難降的妖魔是什么搬卒? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮翎卓,結(jié)果婚禮上契邀,老公的妹妹穿的比我還像新娘。我一直安慰自己失暴,他們只是感情好坯门,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布微饥。 她就那樣靜靜地躺著,像睡著了一般古戴。 火紅的嫁衣襯著肌膚如雪欠橘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天现恼,我揣著相機(jī)與錄音肃续,去河邊找鬼。 笑死叉袍,一個胖子當(dāng)著我的面吹牛痹升,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畦韭,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疼蛾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了艺配?” 一聲冷哼從身側(cè)響起察郁,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎转唉,沒想到半個月后皮钠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赠法,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年麦轰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砖织。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡款侵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侧纯,到底是詐尸還是另有隱情新锈,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布眶熬,位于F島的核電站妹笆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏娜氏。R本人自食惡果不足惜拳缠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贸弥。 院中可真熱鬧窟坐,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽最岗。三九已至帕胆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間般渡,已是汗流浹背懒豹。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留驯用,地道東北人脸秽。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像蝴乔,于是被迫代替她去往敵國和親记餐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 什么是跨域薇正?跨域是指一個域下的文檔或腳本試圖去請求另一個域下的資源片酝,這里跨域是廣義的。 廣義的跨域: 資源跳轉(zhuǎn): ...
    薛定諤的盯襠貓閱讀 1,278評論 1 38
  • 注:文章太長了挖腰,因此分為兩段雕沿,但第一部分比較常用也更重要,可重點(diǎn)掌握猴仑∩舐郑跨域指的是瀏覽器不能執(zhí)行其它網(wǎng)站的腳本,由于...
    AizawaSayo閱讀 3,831評論 0 4
  • 前后端分離現(xiàn)在已成主流系統(tǒng)架構(gòu)設(shè)計(jì)方式辽俗,后臺和前臺頁面分開部署疾渣,以便后期維護(hù)和擴(kuò)展,對運(yùn)維工作十分有利崖飘,不會出現(xiàn)因...
    葉小七的真命天子閱讀 1,609評論 1 11
  • 作者:安靜de沉淀https://segmentfault.com/a/1190000011145364 什么是跨...
    layjoy閱讀 1,283評論 1 8
  • 1.>v-html:指令下數(shù)據(jù)綁定會被忽略稳衬,而被當(dāng)成HTML。如果用到v-html指令時坐漏,需要單獨(dú)添加一個元素來綁...
    OrangeQjt閱讀 118評論 0 0