新聞中心
對(duì)于前端開發(fā)來說跨域應(yīng)該是最不陌生的問題了,無論是開發(fā)過程中還是在面試過程中都是一個(gè)經(jīng)常遇到的一個(gè)問題,在開發(fā)過程中遇到這個(gè)問題的話一般都是找后端同學(xué)去解決,以至于很多人都忽略了對(duì)跨域的認(rèn)識(shí)。為什么會(huì)導(dǎo)致跨域?遇到跨域又怎么去解決呢?本文會(huì)對(duì)這些問題一一的介紹。

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元麻山做網(wǎng)站,已為上家服務(wù),為麻山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
在JavaScript中,在不同的域名下面進(jìn)行數(shù)據(jù)交互,就會(huì)遇到跨域問題,說到跨域首先要從同源說起,瀏覽器為了提供一種安全的運(yùn)行環(huán)境,各個(gè)瀏覽器廠商協(xié)定使用同源策略。
什么同源策略
同源策略:同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會(huì)受到影響??梢哉fWeb是構(gòu)建在同源策略基礎(chǔ)之上的,瀏覽器只是針對(duì)同源策略的一種實(shí)現(xiàn)。
同源策略是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到XSS、CSRF等攻擊。所謂同源是指協(xié)議+域名+端口三者相同,即便兩個(gè)不同的域名指向同一個(gè)ip地址,也非同源。
Url組成部分
了解同源策略以后,同樣需要對(duì)url的組成部分也順帶了解一下吧,只有了解url之后當(dāng)出現(xiàn)跨域的時(shí)候才知道哪里出了問題,這樣才能和后端、運(yùn)維開懟,懟天懟地對(duì)空氣。O(∩_∩)O哈哈~
從上圖中能夠清晰的看出url中每個(gè)部分的含義:
- protocol:協(xié)議常用的協(xié)議是http
- auth:驗(yàn)證,因?yàn)槊魑膫鬏斢脩裘兔艽a,非HTTPS環(huán)境下很不安全,一般用的非常少
- hostname:主機(jī)地址,可以是域名,也可以是IP地址
- port:端口http協(xié)議默認(rèn)端口是:80端口,如果不寫默認(rèn)就是:80端口
- pathname:路徑網(wǎng)絡(luò)資源在服務(wù)器中的指定路徑
- serarch:查詢字符串如果需要從服務(wù)器那里查詢內(nèi)容,在這里編輯
- hash:哈希網(wǎng)頁中可能會(huì)分為不同的片段,如果想訪問網(wǎng)頁后直接到達(dá)指定位置,可以在這部分設(shè)置
項(xiàng)目過程過程中經(jīng)常會(huì)用到一些緩存,瀏覽器為了網(wǎng)頁的安全在緩存的時(shí)候,由于同源策略的問題對(duì)其緩存內(nèi)容進(jìn)行了限制,其實(shí)想想也是對(duì)的,如果不使用同源策略的話,很容易沖掉緩存的東西。
- Cookie、LocalStorage和IndexDB等無法讀取。
- DOM無法獲得。
- AJAX請(qǐng)求不能發(fā)送。
當(dāng)然瀏覽器也沒有把所有的東西都限制了,比如圖片、互聯(lián)網(wǎng)資源等還是允許跨域請(qǐng)求的。允許跨域請(qǐng)求都是使用標(biāo)簽,只有三個(gè)標(biāo)簽是允許跨域加載資源:


咨詢
建站咨詢