一次跨域問題的記錄

前言

最近一個項目,因為某些原因粹淋,需要從https訪問改為http訪問,在改造中出現(xiàn)了跨域的問題,在這里記錄下桃移。

項目使用nginx做反向代理屋匕。

改造HTTP

訪問網(wǎng)站瀏覽器會自動跳轉(zhuǎn)到https,需要把nginx http重定向到https給注釋了

server?{
????listen?80;
????listen?[::]:80;
????server_name?server_name;

????location?^~?/.well-known/acme-challenge/?{
????????default_type?"text/plain";
????????root?????????/usr/share/;
????}
????location?=?/.well-known/acme-challenge/?{
????????return?404;
????}
??#??location?/?{
??#??????return?301?https://$host$request_uri;
??#??}
}

這樣我們在瀏覽器訪問的時候借杰,就不會自動給我們重定向到了https

跨域

在改為http的時候出現(xiàn)了跨域过吻,一般的解決方法就是在nginx加上如下配置

add_header?'Access-Control-Allow-Origin'?'*';

但是我們再加上還是出現(xiàn)了以下錯誤

from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

這個錯誤的意思是在預(yù)檢的時候,瀏覽器不允許重定向第步。

我們查看MDN對跨域的定義

跨域?qū)嶋H上是瀏覽器對不同域訪問的一種保護(hù)疮装,不然誰都可以隨意訪問你域名的資源,也是恐怖的

在不是簡單的請求的情況下粘都,瀏覽器一般都會發(fā)布一個options預(yù)檢請求廓推,以獲知服務(wù)器是否允許該實際請求。"預(yù)檢請求“的使用翩隧,可以避免跨域請求對服務(wù)器的用戶數(shù)據(jù)產(chǎn)生未預(yù)期的影響樊展。

這個設(shè)計挺人性化的,總不能直接在你的業(yè)務(wù)請求上加吧堆生?

回到我們的問題专缠,就是在預(yù)檢的時候,不允許重定向淑仆,可我的地址沒有進(jìn)行重定向涝婉,難道什么東西在背后偷偷咪咪的給我做了一層重定向?

請求鏈路:瀏覽器--》nginx--》業(yè)務(wù)

業(yè)務(wù)是肯定沒有重定向的蔗怠,瀏覽器也不會無緣無故重定向墩弯,那么只有NGINX了

打開瀏覽器控制臺,在網(wǎng)絡(luò)層我們可以看到

瀏覽器預(yù)檢發(fā)現(xiàn)狀態(tài)碼是307寞射,那肯定是重定向了渔工,而且一個注意的點,Non-Authoriatative-Reason居然是HTTPS桥温,我們早就把nginx的https換成了http引矩,訪問的域名也是http,所以這個地方肯定有問題

add_header?Strict-Transport-Security?"max-age=63072000"?always;

原因在我的nginx配置里有這個配置侵浸,大概意思就是 告知瀏覽器當(dāng)前域名的所有請求都使用https旺韭,這也就是為什么我請求用http,在options探測的時候掏觉,自動給我重定向成了https茂翔,而cros規(guī)定在預(yù)檢完成前,不允許重定向履腋,所以導(dǎo)致了這里的問題

去掉這句話,或者改成以下形式,重啟nginx遵湖,清理瀏覽器緩存悔政,或者改用無痕模式訪問,options就不會在重定向了延旧。

add_header?Strict-Transport-Security?max-age=0;

本文使用 文章同步助手 同步

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谋国,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子迁沫,更是在濱河造成了極大的恐慌芦瘾,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件集畅,死亡現(xiàn)場離奇詭異近弟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挺智,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門祷愉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赦颇,你說我怎么就攤上這事二鳄。” “怎么了媒怯?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵订讼,是天一觀的道長。 經(jīng)常有香客問我扇苞,道長欺殿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任杨拐,我火速辦了婚禮祈餐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哄陶。我一直安慰自己帆阳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布屋吨。 她就那樣靜靜地躺著蜒谤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪至扰。 梳的紋絲不亂的頭發(fā)上鳍徽,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機(jī)與錄音敢课,去河邊找鬼阶祭。 笑死绷杜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的濒募。 我是一名探鬼主播鞭盟,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瑰剃!你這毒婦竟也來了齿诉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤晌姚,失蹤者是張志新(化名)和其女友劉穎粤剧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挥唠,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡抵恋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了猛遍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馋记。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖懊烤,靈堂內(nèi)的尸體忽然破棺而出梯醒,到底是詐尸還是另有隱情,我是刑警寧澤腌紧,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布茸习,位于F島的核電站,受9級特大地震影響壁肋,放射性物質(zhì)發(fā)生泄漏号胚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一浸遗、第九天 我趴在偏房一處隱蔽的房頂上張望猫胁。 院中可真熱鬧,春花似錦跛锌、人聲如沸弃秆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽菠赚。三九已至,卻和暖如春郑藏,著一層夾襖步出監(jiān)牢的瞬間衡查,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工必盖, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留拌牲,地道東北人俱饿。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像们拙,于是被迫代替她去往敵國和親稍途。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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