解決跨域問題

同源策略

同源策略/SOP(Same origin policy)是一種約定郊尝,由Netscape公司1995年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略甘有,瀏覽器很容易受到XSS、CSFR等攻擊葡缰。所謂同源是指"協(xié)議+域名+端口"三者相同亏掀,即便兩個不同的域名指向同一個ip地址,也非同源泛释。

同源策略限制以下幾種行為

?Cookie滤愕、LocalStorage 和 IndexDB 無法讀取

?DOM 和 Js對象無法獲得

AJAX 請求不能發(fā)送

跨域解決方案

1、?nginx代理跨域?

2怜校、跨域資源共享(Cross-origin resource sharing-縮寫CORS)

? ??CORS需要瀏覽器和服務(wù)器同時支持间影,對于簡單請求,瀏覽器直接發(fā)出CORS請求茄茁。具體來說魂贬,就是在頭信息之中巩割,增加一個Origin字段。Origin字段用來說明付燥,本次請求來自哪個源(協(xié)議 + 域名 + 端口)宣谈。服務(wù)器根據(jù)這個值,決定是否同意這次請求键科。如果Origin指定的源闻丑,不在許可范圍內(nèi),服務(wù)器會返回一個正常的HTTP回應(yīng)勋颖。瀏覽器發(fā)現(xiàn)嗦嗡,這個回應(yīng)的頭信息沒有包含Access-Control-Allow-Origin字段,就知道出錯了饭玲,從而拋出一個錯誤侥祭。注意,這種錯誤無法通過狀態(tài)碼識別茄厘,因為HTTP回應(yīng)的狀態(tài)碼有可能是200卑硫。如果Origin指定的域名在許可范圍內(nèi),服務(wù)器返回的響應(yīng)蚕断,會多出幾個頭信息字段欢伏。

Access-Control-Allow-Origin????必須,它的值要么是請求時Origin字段的值亿乳,要么是一個*硝拧,表示接受任意域名的請求。

Access-Control-Allow-Methods?可選

Access-Control-Allow-Headers?可選

Access-Control-Allow-Credentials 可選?葛假。它的值是一個布爾值障陶,表示是否允許發(fā)送Cookie。默認情況下聊训,Cookie不包括在CORS請求之中抱究。設(shè)為true,即表示服務(wù)器明確許可带斑,Cookie可以包含在請求中鼓寺,一起發(fā)給服務(wù)器。這個值也只能設(shè)為true勋磕,如果服務(wù)器不要瀏覽器發(fā)送Cookie妈候,刪除該字段即可。

Access-Control-Expose-Headers ?可選

Content-Type ?可選

CORS與JSONP的使用目的相同挂滓,但是比JSONP更強大苦银。

JSONP只支持GET請求,CORS支持所有類型的HTTP請求。JSONP的優(yōu)勢在于支持老式瀏覽器幔虏,以及可以向不支持CORS的網(wǎng)站請求數(shù)據(jù)纺念。

3、通過jsonp跨域?

JSONP實現(xiàn)跨域請求的原理簡單的說想括,就是動態(tài)創(chuàng)建<script> 標簽柠辞,然后利用<srcipt>中 的src不受同源策略約束來跨域獲取數(shù)據(jù)。標簽標簽標簽主胧,然后利用的src 不受同源策略約束來跨域獲取數(shù)據(jù)。

JSONP 由兩部分組成:回調(diào)函數(shù)和數(shù)據(jù)习勤∽俣埃回調(diào)函數(shù)是當響應(yīng)到來時應(yīng)該在頁面中調(diào)用的函數(shù)⊥急希回調(diào)函數(shù)的名字一般是在請求中指定的夷都。而數(shù)據(jù)就是傳入回調(diào)函數(shù)中的 JSON 數(shù)據(jù)。

4予颤、 ?WebSocket協(xié)議跨域?

5囤官、 postMessage跨域

6、??document.domain + iframe跨域

7蛤虐、?location.hash + iframe

8党饮、 nodejs中間件代理跨域

9、window.name + iframe跨域

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末驳庭,一起剝皮案震驚了整個濱河市刑顺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饲常,老刑警劉巖蹲堂,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贝淤,居然都是意外死亡柒竞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門播聪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朽基,“玉大人,你說我怎么就攤上這事离陶〔染В” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵枕磁,是天一觀的道長渡蜻。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么茸苇? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任排苍,我火速辦了婚禮,結(jié)果婚禮上学密,老公的妹妹穿的比我還像新娘淘衙。我一直安慰自己,他們只是感情好腻暮,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布彤守。 她就那樣靜靜地躺著,像睡著了一般哭靖。 火紅的嫁衣襯著肌膚如雪具垫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天试幽,我揣著相機與錄音筝蚕,去河邊找鬼。 笑死铺坞,一個胖子當著我的面吹牛起宽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播济榨,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坯沪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了擒滑?” 一聲冷哼從身側(cè)響起屏箍,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎橘忱,沒想到半個月后赴魁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡钝诚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年颖御,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凝颇。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡潘拱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拧略,到底是詐尸還是另有隱情,我是刑警寧澤垫蛆,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布腺怯,位于F島的核電站,受9級特大地震影響川无,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜懦趋,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仅叫。 院中可真熱鬧帜篇,春花似錦诫咱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至边臼,卻和暖如春哄尔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背柠并。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留臼予,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓粘拾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缰雇。 傳聞我的和親對象是個殘疾皇子入偷,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

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