跨域产生
同源策略限制,同源是指:域名,协议,端口相同。
1.跨域资源共享(CORS)
需要被请求方的服务端设置: Access-Control-Allow-Origin。兼容性不够好,在IE10以下的浏览器不支持。
2.服务器代理
A客户端访问A服务器,并在A服务器上做代理访问B服务器把请求结果返回A客户端,即实现了A客户端请求B服务器的跨域需求。
3.JSONP
原理:所有具有src属性的HTML标签都是可以跨域的,包括<script><img><iframe>
,所以我们通常会把一些图片资源放到第三方服务器上,然后可以通过<img>标签的src属性引用。
首先在客户端注册一个callback, 然后把callback的名字传给服务器。
服务器先生成 json 数据。将 json 数据直接以入参的方式,放置到 callback中,这样就生成了一段 js 语法的文档,返回给客户端。
客户端浏览器,解析script标签,并执行返回的 javascript 代码,此时数据作为参数,传入到了客户端预先定义好的 callback 函数里.(动态执行回调函数)