日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

为什么浏览器不能跨域

發布時間:2024/9/20 HTML 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么浏览器不能跨域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現在很多人特別是前端開發人員,在ajax請求,XMLHttpRequest的過程中會碰到一個問題,那就是跨域請求:

當我們javaScript腳本試圖跨域訪問時,瀏覽器會告訴你類似于No 'Access-Control-Allow-Origin' header is present on the requested resource.的消息。

可是我有時候又有跨域請求的強烈需求,比如需要去別的網站抓取一些數據(當然現在有很多方法來支持跨域,但這不是本文要講的內容)。原來這是瀏覽器的一個策略----“同源策略”

1. 什么是同源策略(Same Origin Policy)?

所謂同源策略,它是瀏覽器的一種最核心最基本的安全策略。它對來至不同源的文檔或這腳本對當前文檔的讀寫操作做了限制。

為什么要有這個策略,想必你已經知道,那就是因為保證用戶的信息安全。

2. 假如沒有同源策略

假設現在有a.com和b.com兩個域,如果沒有這一安全策略,那么當用戶在訪問a.com時,a.com的一段腳本就可以在不加載b.com的頁面而隨意修改或者獲取b.com上面的內容。這樣將會導致b.com頁面的頁面發生混亂,甚至信息被獲取,包括服務器端發來的session。這樣的話,我們的web世界將是一片混亂。也是因為瀏覽器的同源策略,保證來至不同源的對象不會互相干擾,保證了我們訪問頁面最基本的安全。

3. 什么是跨域?

訪問同源的資源是被瀏覽器允許的,但是如果訪問不同源的資源,瀏覽器默認是不允許的。訪問不同源的資源那就是我們所說的跨域

圖片來源:http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html

從表中可以看出域名,子域名,端口號,協議不同都屬于不同源,當腳本被認為是來至不同源時,均被瀏覽器拒絕請求。

4.?src可以跨域

在這里需要注意的是,文檔中的所有帶“src”屬性的標簽都可以跨域加載資源,而不受同源策略的限制。

如<script>、<img>、<iframe>、<link>等。如果你在頁面定義了這些標簽,在頁面加載事都對不同源的資源發起了一次GET請求。但是通過src加載的資源,瀏覽器限制了腳本對其返回的內容無法讀寫。特別是在ajax請求的時候,特別要注意XMLHttpRequest的時候是無法跨域訪問的。

5. 注意

當我們b.com在頁面加載不同源的資源時?<script?src='a.com/a.js'></script>?,對于頁面來說,a.js是運行在b.com上的,因此對于當前頁面來說,a.js的源(Origin)是b.com而不是a.com。

因此頁面內存放的資源的域a.com并不重要,重要的是加載資源的頁面所在的域b.com

文章地址:http://www.cnblogs.com/alvinwei1024/p/4626054.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的为什么浏览器不能跨域的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。