前端面試題常考&必考之--跨域的解決辦法

1.爲啥出現跨域???前端

在制定Html規則時,爲了安全的考慮,一個源的腳本(網頁,網站)不能與另外一個源的資源進行交互,node

因此就引起一個詞叫作「同源策略」nginx

同源策略:同源策略是一種約定,它是瀏覽器最核心的也最基本的安全功能,若是缺乏了同源策略,則面試

瀏覽器的正常功能可能會受到影響。後端

同源:所謂同源(即指在同一個域),就是兩個頁面具備相同的協議(protocol),主機(host)和端口號(port)跨域

 

2.啥是跨域???瀏覽器

當協議,主機,和端口號有一個不一樣時,就是跨域。安全

 

 

 

須要注意的是:默認的端口號是80
服務器

 

3.受限制的場景有哪些呢???(面試回答)post

 

 1)Cookie,LocalStorage沒法讀取

 2)DOM和js對象沒法讀取,主要是iframe(能夠說有iframe的對象沒法讀取)

 3) Ajax請求不能發送

 

跨域報錯長這樣子:

 

 

 4.解決跨域的方法???

對最主要的AJAX跨域來講(也就是日常調接口時):

1)(後端)服務器配置CORS(跨域資源共享)

2) (後端)node.js或nginx,反向代理,把跨域改形成同域

3)(前端)將JSON升級成JSONP,在JSON的基礎上,利用<script>標籤能夠跨域的特性,加上頭設置

對iframe跨域來講:

H5提供了postMessage()的方法,能夠在父子頁面進行通訊(加分項)

相關文章
相關標籤/搜索