跨域(jsonp,ajax)
(1)如果需要从不同的服务器(不同域名)上获取数据就需要跨域HTTP请求
(2)跨域请求在网页上非常常见。很多网页从不同服务器上载入CSS,图片,Js脚本
(3)在现代浏览器中,为了数据安全,所有请求被限制在同一域名下。如果要调用不同站点的数据
则需要跨域
jsonNP:ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以
访问跨域js脚本,利用这个特性,服务端不在返回json格式的数据,而是返回一段调用某个函数的
js代码,在src中进行调用,这样实现了跨域
如何实现跨域
jsonNP:通过动态创建script,请求一个带参数网址实现跨域通信。document.domain+iframe跨域:
两个页面都通过js,强制设置document+domain为基础的主域,就实现了同域
location.hash+iframe跨域:a欲与b跨域相互通信,通过中间c来实现,三个页面,不同欲之间利用
iframe的location.hash传值,相同域之间之间直接js访问来通信。
window.name+iframe跨域:通过iframe的src属性由外域专向本地域,跨域数据既由iframe的
windown.name从外域传递到本地域
postMessage:跨域操作的window属性之一
Cors:服务端Access-control-Allow-Origin即可,前端无须设置,若要带cookie请求,前后端都
需要设置
代理跨域:起一个代理服务器,实现数据转发
ajax同源策略
同源策略是一种安全协议,是客户端脚本中重要的安全度量标准,指一段脚本只能读取同一来源的窗口的
文档的属性,同源策略要求协议,域名,端口号一致
为什么要同源策略?
为了数据安全性,若没有同源策略的限制,那么黑客就可以在他的页面上任意请求你的后端数据,造成数
据库内容盗取,隐私数据泄露