CORS(跨域资源共享):需要服务器设置的
附加一个额外的Origin头部,以便服务器根据这个头部决定是否响应。
如果服务器认为这个请求可以接受,就在Access-Control-Allow-Origin头部中发回相同的源信息。
IE对CORS的实现:XDR(new XDomainRequest())
其他浏览器的实现:XHR
在CORS出现之前,要实现跨域Ajax通信会很麻烦,开发人员想出了下面的方法:
图像Ping:
只能用于浏览器与服务器的单向通信
JSONP:
通过一个script标签访问一个URL+?callback=funname,例如:http://freegeoip.net/json/?callback=handleResponse,这个地址会调用handleResponse这个方法,并将参数传进去,以达到跨域访问的目的。
缺点:1.安全性;2.确定JSONP请求是否失败并不容易,只能用计时器来判断。
Comet:
更高级的Ajax技术(服务器推送),服务器向浏览器推送的技术
实现方式:
1.长轮询:短轮询是服务器立即发送响应,长轮询是等待发送响应
2.流
为了简化,创建了两个新的接口:
1.SSE:单向,服务器到浏览器
详细介绍:点击打开链接
2.Web Sockets:双向
Ajax的安全性问题:
未被授权系统有权访问某个资源的情况,称为CSRF(跨站点请求伪造)
解决方法:
1.SSL
2.要求每次请求都附加验证码