微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[Ajax]三跨域请求

概念

同源策略是浏览器的一种安全策略,所谓同源是指域名、协议(http、https)、端口完全相同,只有同源的地址才可以相互通过AJAX的方式请求。不同源地址之间,认不能相互发送AJAX请求

同源或者不同源说的是两个地址之间的关系,不同源地址之间请求我们称之为跨域请求。

http://www.baidu.com:80和ftp://www.baidu.com:80                            不同域,协议不一样

http://www.baidu.com:80和http://www.xiaomi.com:80                        不同域,主机名不一样

http://www.baidu.com:80和ftp://www.baidu.com:8080                        不同域,端口号不一样

http://www.baidu.com:80/a.html和ftp://www.baidu.com:80/b.js           同域

 

跨域请求

为什么浏览器要限制跨域请求,其中最主要的原因就是安全性问题,比如CSRF攻击。但是,既然不安全,为什么我们又要跨域请求呢?为了服务器便于管理和减轻服务器压力,公司会把不同的资源放在不同的服务器上,这样就存在很多子域,这时比如A子域的html资源要去访问B子域的图片资源就会出现跨域请求了。(可以注意下京东网站就是个很好的例子)

 

解决方法

JSONP

ajax请求不同域会出现跨域请求,无访问权限,但平时在HTML页面写的<script>、<link>这些标签的src属性是不受跨域请求限制的,于是,JSONP的策略就是服务器端可以动态生成JSON文件,把客户端需要的数据放到这个文件中,让客户端通过<script>标签的src属性来请求这个文件,这样,一种解决方案就出来了。下面开始实现测试下。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐