Ajax 同源策略限制的简单说明
发布时间:2020-12-16 00:42:34 所属栏目:百科 来源:网络整理
导读:出于安全原因,浏览器对页面中的ajax请求( XMLHTTPRequest )有同源策略的限制。 如果两个页面的 协议、域名和端口是完全相同 的,那么它们就是同源的。 当前加载页面只能发出同源的ajax请求。 比如说你的当前页面是http://www.example.com/test.html,那么
出于安全原因,浏览器对页面中的ajax请求(XMLHTTPRequest)有同源策略的限制。
如果两个页面的协议、域名和端口是完全相同的,那么它们就是同源的。当前加载页面只能发出同源的ajax请求。
比如说你的当前页面是http://www.example.com/test.html,那么这个页面中的只能发出
http://www.example.com/ 下的请求。
一、协议指:http、https、ftp等属于不同的协议,尤其是http和https也是不同的协议。
二、域名指不同:
三、端口不同:这个大家都明白,比如80和8080是不同的。
注意:script标签的src属性是没有同源限制的,你的网页上可以加载互联网上任何url的js,比如在页面中嵌入Google 分析的js代码。类似的,img标签也可以加载任何url的图片,比如你的网站上链接的是别人的图片,这些都不受同源策略的限制。利用这一点,也可以实现一定程度的跨域请求,比如你可以利用js修改script或img等标签的src属性,就等于在向任意url发出了一个get请求。
iframe也可以是任意url,但当前页面只能向自己的同源发出请求。
同源策略在带来安全性的同时,也对应用程序造成了很多限制,所以又引出了ajax跨域
问题
解
决方法。除了前面说到的方法,一般的跨域就是类似代理的方法了。现在也有用jQuery的跨域解决方案,搜索“jquery 跨域”就可以找到相关介绍。不过,各种跨域解决方案存在一些不足、同时又增加了复杂性。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |