1 . 什么是跨域猫十?
為了保證安全性,瀏覽器有一個同源策略(所謂同源就是同協(xié)議次和、同域名反肋、同端口,貌似IE有點偏差)踏施,對于不在同一個域下面的url不可以訪問石蔗。
2 . 為啥ajax的異步請求訪問是跨域的呢罕邀?
對于ajax的異步訪問,就像是ajax自己所在的是一個域养距,而訪問的地址是另一個域诉探。要想進(jìn)行訪問,就是進(jìn)行了跨域棍厌。這也是瀏覽器的一個自我安全保護的機制肾胯,ajax的訪問就像是一個陌生人要查看你的身份證,而自己在瀏覽器中直接輸入地址訪問服務(wù)器是相當(dāng)于警察要查看你的身份證耘纱,相比之下敬肚,瀏覽器更信任警察。而對于陌生人則會拒絕束析。ps:一個案例艳馒,若使用ajax就可以輕而易舉的拿到別的地址的東西也是很恐怖的一件事情,若登陸了不安全的網(wǎng)站畸陡,然后惡意網(wǎng)站通過ajax獲取到你登錄銀行頁面的cookie鹰溜,那樣就悲劇了。丁恭。曹动。
3 . 但出于各種需要,還是要實現(xiàn)ajax的跨域操作的牲览。大體的集中方法:
- 使用flash插件墓陈,通過flash繞開瀏覽器的安全限制,說是要安裝flash第献,并木有真正用過贡必。
- 使用jsonp進(jìn)行跨域,原理是javascrip在引入<script src=""></script>這個過程中的src都是不檢查跨域的庸毫∽心猓可以利用它,將接口寫成了函數(shù)飒赃,然后再對函數(shù)進(jìn)行響應(yīng)利花。參考例子
- 使用中間服務(wù)器,我想要著重學(xué)習(xí)這一方面载佳,實現(xiàn)前后端分離炒事,nodejs走起。蔫慧。挠乳。
- CORS 若瀏覽器支持html5就可以使用CORS
CORS全稱Cross-Origin Resource Sharing,是HTML5規(guī)范定義的如何跨域訪問資源。
了解CORS前睡扬,我們先搞明白概念:
Origin表示本域盟蚣,也就是瀏覽器當(dāng)前頁面的域。當(dāng)JavaScript向外域(如sina.com)發(fā)起請求后威蕉,瀏覽器收到響應(yīng)后刁俭,首先檢查Access-Control-Allow-Origin是否包含本域,如果是韧涨,則此次跨域請求成功,如果不是侮繁,則請求失敗虑粥,JavaScript將無法獲取到響應(yīng)的任何數(shù)據(jù)。