跨域問題(cors origin)(以及域名的定義)

情況描述

  • 1.客戶端代碼運行在docker ngixn container啟動在3000端口
  • 2.客戶端向另一個docker nodejs container發(fā)送請求啟動在8080端口
  • 3.瀏覽器打開3000端口,發(fā)現(xiàn)報出錯誤
    No 'Access-Control-Allow-Origin' header is present on the requested resource

問題分析

  • Q1:根據(jù)以往的經(jīng)驗這是跨域問題經(jīng)常會報出的錯誤导饲,那么到底什么是跨域問題?什么情況才能出現(xiàn)跨域問題帜消?如何解決跨域問題棠枉?
  • A1: 我們先來了解什么是跨域問題
    • 請求從一個域發(fā)送到了另一個域。
  • Q2:那么域是怎么樣界定是否是同一個的呢泡挺?
  • A2:根據(jù)下圖對url的劃分來理解辈讶,由下圖可知。問題中的請求發(fā)送方和接受方不在同一個域下娄猫,因此出現(xiàn)了跨域請求贱除。


    image.png

    給個例子:

// 同域名請求例子
https://localhost:8080/api/users
https://localhost:8080/api/register
// 跨域請求例子
https://localhost:8080/api/user
https://localhost:8081/
  • Q3:那么跨域請求到底造成了什么樣的問題生闲,就叫他跨域問題?
  • A3:這個問題翻譯過來就是:是不是所有的不同域下的請求都會出現(xiàn)問題月幌,答案:不是碍讯。當某一條請求通過瀏覽器發(fā)出,瀏覽器會在請求頭部加上該請求來自的域(origin)扯躺,請求的接收方去判斷他是否愿意處理來自這個域的請求捉兴,如果愿意就在請求頭部加上Access-Control-Allow-Origin:true,請求回來后录语,瀏覽器再去檢查這個頭部是否包含這個值A(chǔ)ccess-Control-Allow-Origin倍啥,如果沒有就會爆出以上的錯誤。但是對于直接發(fā)送的http請求澎埠,沒有人回去添加origin頭部虽缕,也沒有人會去添加和檢查Access-Control-Allow-Origin:true這樣的字段。因此一般的http請求就算是跨域了蒲稳,也不會出現(xiàn)問題
    image.png
  • Q4:現(xiàn)在知道了什么情況下會出現(xiàn)跨域問題氮趋,那么如何解決呢?
  • A4:首先江耀,如果請求必須要跨域剩胁,那么我們就可以把跨域的請求從瀏覽器轉(zhuǎn)出來,也就是說决记,瀏覽器只做同一域下的請求摧冀,然后跨域的請求交給http來做,這就是所謂的反向代理系宫。
  • Q5:那么什么是反向代理,又如何做到呢建车?
  • A5:按照上述方法扩借,瀏覽器需要將請求發(fā)送到同一個域下的服務(wù)器,很顯然這個服務(wù)器一定不是最終的處理服務(wù)器缤至,那么這個服務(wù)器需要幫助我們接受來自瀏覽器的請求并且將請求通過http轉(zhuǎn)發(fā)到跨了域的服務(wù)器潮罪,那么幫助轉(zhuǎn)發(fā)的服務(wù)器就是反向代理服務(wù)器
    • 例子:nginx可以做反向代理服務(wù)器,那么我們將前端的打包好的文件放到nginx中领斥,啟動nginx在3000端口嫉到,然后用nginx啟動前端,因此請求應(yīng)該是從3000端口發(fā)出月洛。讓nginx反向代理8080端口何恶。那么就是,nginx接受來自前端的請求嚼黔,此時請求接受和發(fā)送方在同一域不會出現(xiàn)跨域問題细层,然后ngixn再將請求通過http轉(zhuǎn)發(fā)到8080端口下的服務(wù)即可


      image.png

心得

  • 我發(fā)現(xiàn)我記問題有個套路,每次都是問題表象是什么記住了疫赎,這個問題叫什么名字捧搞,然后我是怎么解決的。以后再出現(xiàn)一樣的錯誤我再這么解決即可陌僵。而且還背會了跨域問題只有瀏覽器有创坞,但是從來沒有理解過這些概念,簡單的說就是沒有問過為什么會發(fā)生偎谁?從今往后巡雨,我的目標不是解決問題了席函,是不僅要解決還要找到為什么發(fā)生,為什么這樣解決
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末正蛙,一起剝皮案震驚了整個濱河市营曼,隨后出現(xiàn)的幾起案子蒂阱,更是在濱河造成了極大的恐慌,老刑警劉巖录煤,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妈踊,死亡現(xiàn)場離奇詭異,居然都是意外死亡新思,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門纵刘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荸哟,“玉大人,你說我怎么就攤上這事舵抹×涌常” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵香嗓,是天一觀的道長靠娱。 經(jīng)常有香客問我掠兄,道長,這世上最難降的妖魔是什么迅诬? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任百框,我火速辦了婚禮牍汹,結(jié)果婚禮上柬泽,老公的妹妹穿的比我還像新娘锨并。我一直安慰自己,他們只是感情好解幼,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著底靠,像睡著了一般特铝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鳄逾,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天雕凹,我揣著相機與錄音政冻,去河邊找鬼。 笑死俄精,一個胖子當著我的面吹牛榕堰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逆屡,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼砍的,長吁一口氣:“原來是場噩夢啊……” “哼莺治!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起床佳,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤砌们,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后昔头,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體影兽,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡未蝌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年茧妒,在試婚紗的時候發(fā)現(xiàn)自己被綠了桐筏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡狰腌,死狀恐怖牧氮,靈堂內(nèi)的尸體忽然破棺而出踱葛,到底是詐尸還是另有隱情,我是刑警寧澤甥材,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布洲赵,位于F島的核電站商蕴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俭令。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赫蛇。 院中可真熱鬧悟耘,春花似錦、人聲如沸暂幼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荡陷,卻和暖如春废赞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背据悔。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工屠尊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讼昆。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓浸赫,卻偏偏與公主長得像赃绊,于是被迫代替她去往敵國和親既峡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理碧查,服務(wù)發(fā)現(xiàn)运敢,斷路器校仑,智...
    卡卡羅2017閱讀 134,638評論 18 139
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧传惠!Ngi...
    JokerW閱讀 32,651評論 24 1,002
  • 跨域問題的場景和解決方案多種多樣迄沫,只要是做前端開發(fā),總會遇到卦方。而且面試時也是必問的問題羊瘩。所以自己學習總結(jié)記錄一下。...
    花開_陳鳳娟閱讀 734評論 0 0
  • 什么是跨域盼砍? 2.) 資源嵌入:尘吗、、浇坐、等dom標簽睬捶,還有樣式中background:url()、@font-fac...
    電影里的夢i閱讀 2,368評論 0 5
  • 生活如同一幅寂靜的畫跌宛, 它能完完全全地繪畫出你的點點滴滴蜕猫。 生活如同一張張照片回右, 它能記錄你所有的...
    孤閡閱讀 206評論 0 3