同源策略
如果非同源霹崎,以下三種行為將受到限制:
- Cookie桑驱、LocalStorage 和 IndexedDB 無法讀取。
- DOM 無法獲得脉顿。
- AJAX 請求不能發(fā)送。
同源是指: - 協(xié)議相同
- 域名相同
- 端口號相同
同源策略是為了保證用戶信息的安全点寥,防止惡意的網(wǎng)站竊取數(shù)據(jù)艾疟。
跨域?跨域有幾種實現(xiàn)形式
跨域是指因為Javascript同源策略的限制敢辩,非同源的腳本不能相互通信
跨域的實現(xiàn)形式:
- JSONP
- CORS
- 降域
- PostMessage
JSONP 的原理是什么
雖然瀏覽器默認禁止了跨域訪問汉柒,但并不禁止在頁面中引用其他域的JS文件。因此根據(jù)這一點责鳍,可以方便地通過創(chuàng)建script節(jié)點的方法來實現(xiàn)跨域的通信碾褂。JSOP的基本思想是網(wǎng)頁通過添加一個<script>元素,向服務(wù)器請求JSON數(shù)據(jù)历葛,這種做法不受同源政策限制正塌;服務(wù)器收到請求后,將數(shù)據(jù)放在一個指定名字的回調(diào)函數(shù)里傳回來恤溶。
CORS是什么
CORS是一個W3C標準乓诽,全稱是“跨域資源共享”(Cross-origin resource sharing)。CORS通信過程是瀏覽器一旦發(fā)現(xiàn)AJAX請求跨源咒程,就會自動添加一些附加的頭信息鸠天,服務(wù)器端則需要解析這些的請求頭信息,并按照策略返回相應(yīng)的響應(yīng)頭以及所請求的資源帐姻。