完美解決 Spring Boot + Vue Axios 跨域

前言

前后臺分離開發(fā)模式越來越來成為主流杨拐,剛接觸這種開發(fā)模式時糊肠,我們必定會遇到一個問題: 跨域

跨域

產(chǎn)生跨域問題的罪魁禍?zhǔn)资?a target="_blank">瀏覽器同源策略悯辙,當(dāng)協(xié)議琳省、子域名、主域名躲撰、端口號中任意一個不相同時岛啸,都算作不同域,不同域之間的網(wǎng)絡(luò)請求就會觸發(fā)跨域問題茴肥。跨域并不是請求發(fā)不出去荡灾,請求能發(fā)出去瓤狐,服務(wù)端能收到請求并正常返回結(jié)果,只是結(jié)果被瀏覽器攔截了批幌。

image

解決方法

前后臺分離模式目前主流解決方案有三種:

  • webpack proxy:僅開發(fā)模式有效础锐,打包后會失效。
  • cors:開發(fā)和生產(chǎn)環(huán)境都可以用荧缘。
  • nginx: 僅生產(chǎn)環(huán)境可用皆警。

本文主要講的是 cors 方式,需要前后臺進(jìn)行配合截粗。

前臺

前臺使用 vue-admin-template 腳手架信姓,網(wǎng)絡(luò)請求使用 Axios。Axios 是一個基于 promise 的 HTTP 客戶端绸罗,可以發(fā)送 get意推、post 請求。

找到項(xiàng)目中 Axios 封裝的文件珊蟀,在 Axios 創(chuàng)建時增加屬性 withCredentials: true

    const service = axios.create({
        baseURL:  process.env.VUE_APP_BASE_API,
        withCredentials:  true,
        timeout:  5000
    })

后臺

后臺新建 WebMvcConfig 類菊值,繼承 WebMvcConfigurer,統(tǒng)一配置全局跨域請求。

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

        /**
         *  允許跨域訪問
         */
        @Override
        public void addCorsMappings(CorsRegistry registry) {
                  registry.addMapping("/**")  // 可限制哪個請求可以通過跨域
                  .allowedHeaders("*")  // 可限制固定請求頭可以通過跨域
                  .allowedMethods("*") // 可限制固定methods可以通過跨域
                  .allowedOrigins("*")  // 可限制訪問ip可以通過跨域
                  .allowCredentials(true) // 是否允許發(fā)送cookie
                  .exposedHeaders(HttpHeaders.SET_COOKIE);
          }
          
}

結(jié)尾

至此跨域問題算是解決了腻窒,這里是示例源碼昵宇,希望可以幫助到你吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末儿子,一起剝皮案震驚了整個濱河市瓦哎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌典徊,老刑警劉巖杭煎,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異卒落,居然都是意外死亡羡铲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門儡毕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來也切,“玉大人,你說我怎么就攤上這事腰湾±资眩” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵费坊,是天一觀的道長倒槐。 經(jīng)常有香客問我,道長附井,這世上最難降的妖魔是什么讨越? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮永毅,結(jié)果婚禮上把跨,老公的妹妹穿的比我還像新娘。我一直安慰自己沼死,他們只是感情好着逐,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著意蛀,像睡著了一般耸别。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上县钥,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天太雨,我揣著相機(jī)與錄音,去河邊找鬼魁蒜。 笑死囊扳,一個胖子當(dāng)著我的面吹牛吩翻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锥咸,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼狭瞎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搏予?” 一聲冷哼從身側(cè)響起熊锭,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雪侥,沒想到半個月后碗殷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡速缨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年锌妻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旬牲。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡仿粹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出原茅,到底是詐尸還是另有隱情吭历,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布擂橘,位于F島的核電站晌区,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏通贞。R本人自食惡果不足惜朗若,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滑频。 院中可真熱鬧,春花似錦唤冈、人聲如沸峡迷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绘搞。三九已至,卻和暖如春傅物,著一層夾襖步出監(jiān)牢的瞬間夯辖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工董饰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒿褂,地道東北人圆米。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像啄栓,于是被迫代替她去往敵國和親娄帖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

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

  • 1. 什么是跨域 跨域昙楚,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本近速。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScri...
    cbw100閱讀 6,339評論 2 86
  • <轉(zhuǎn)>詳解跨域(最全的解決方案) 什么是跨域跨域堪旧,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本削葱。它是由瀏覽器的同源策略造成的,...
    涅槃快樂是金閱讀 4,754評論 0 3
  • 什么是跨域 跨域淳梦,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本析砸。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實(shí)...
    Yaoxue9閱讀 1,301評論 0 6
  • 什么是跨域 跨域谭跨,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本干厚。它是由瀏覽器的同源策略造成的,是瀏覽器對JavaScript實(shí)...
    他方l閱讀 1,064評論 0 2
  • 1.什么是跨域 跨域挂捅,是指瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源策略造成的堂湖,是瀏覽器對JavaScrip...
    phantom_f835閱讀 30,637評論 1 15