一. Ajax跨域问题
跨域:只要协议、域名、端口有一个不同,就被当做不同的域。
ajax跨域:利用ajax技术请求不同域名上的数据。
1. 什么是同源策略
同源策略是由Netscape提出的一个著名的安全策略,现在所有的可支持javascript的浏览器都会使用这个策略。
A网页设置的 Cookie,B网页不能打开,除非这两个网页“同源”。
同源策略的作用:防止其他网页对本网页的非法篡改。
同源指的是:协议、域名、端口都相同。
二. 跨域的方法
1. 跨域资源共享(CORS)
CORS(Cross-Origin Resource Sharing)跨域资源共享,定义了在访问跨域资源时,浏览器与服务器应该如何沟通。
注意:跨域资源共享的请求默认都是不包含cookie信息。
思想:使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。
在request的请求头部中添加一个origin。
服务器在response的请求头部中设置Access-Control-Allow-Origin。
比如: Access-Control-Allow-Origin: 设置和请求头部中的origin中相同的地址,采用“*”也可以。如果浏览器检测到相应的设置,就可以允许Ajax进行跨域的访问。
CORS在浏览器中的实现:
(1)IE中的CORS
使用XDR对象 XDomainRequest:XDR对象和XHR类似,但是其open(请求方法, url),
方法只接收两个参数,XDR的所有请求都是异步的。
(2)其它浏览器中的CORS
直接使用XHR对象
open(请求方法, url, 是否发送异步请求),
方法的url传入绝对的url就可以实现跨域资源共享
(3)跨浏览器的CORS
![e9e1e817580a8052c76b37a04f5bda47.png](https://img-blog.csdnimg.cn/img_convert/e9e1e817580a8052c76b37a04f5bda47.png)
2. 利用