现在位置首页 / 前端开发 /正文

javascript 跨域相关问题及同源策略

作者: IT小兵 | 2014年4月21日| 热度:℃ | 评论: |参与:

在我们很多系统中都会涉及到跨域问题,比如js中ajax请求跨域,C# webbrowser调用iframe会跨域,

参考一下文章:


[jquery ajax跨域请求--jquery ajax parsererror was not called]

[C#彻底解决Web Browser 跨域读取Iframes内容]

[jquery ajax使用及跨域访问解决办法]

跨域这么麻烦为什么浏览器或者系统直接允许不就行了?跨域的初衷是什么?

初衷主要是浏览器的安全策略:同源策略。


受同源策略限制,JavaScript不能跨域! 这里提到了同源策略,那么什么是同源策略呢?

同源策略(Same Origin Policy),它是由Netscape提出的一个著名的安全策略。 现在所有支持JavaScript 的浏览器都会使用这个策略。同源策略阻止从一个域上加载的脚本去获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这说明浏览器隔离来自不同源的内容,以防止它们之间的操作。


为何要使用同源策略?
答案:安全! 一个简单的例子:比如一个黑客,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。后果会非常严重!

那么什么才是同源?
所谓同源是指域名,协议,端口均相同。

同源的几种情况:

1.不同域名属于跨域,如:www.a.com和www.b.com,另外www.a.com 和www.a.com.cn 也属于不同域名。

2.主域名和子域名(二级域名、三级域名等)跨域,如:www.a.com 和 sub.a.com
属于跨域,sub.a.com 和 sub1.a.com 之间也是跨域。

3.不同协议属于跨域,如:http://www.a.com 和 https://www.a.com。

4.不同端口,如: www.a.com:80和 www.a.com:81 。

5.IP和域名属于跨域,如:123.125.106.16 和 t.suchso.com


转发注明:IT分享  http://www.suchso.com 

点击阅读本文所属分类的更多文章: 前端开发 。和高手一起交流:346717337

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:suchso@vip.qq.com

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:suchso@vip.qq.com

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询