(1)跨域
当一个请求URL的协议、域名、端口三者之间任意一个与当前页面
URL不同即为跨域
(2)JSONP
是JSON的一种使用模式,用来解决浏览器跨域请求问题的方法之一
a. 原理:
在页面创建一个script标签,标签中的src属性可以访问服务端的数
据接口,服务端返回一段调用某个函数的js代码,在src中进行了调
用,这样实现了跨域。
b. 缺点:
-只支持GET请求,不支持POST等其他请求;
-JSONP在调用失败后,不会返回http状态码
(3)CORS
是跨域资源分享(Cross-Origin Resource Sharing)的缩写。允许浏
览器跨域请求资源,是解决跨域问题的办法之一。实现CORS通信的关
键是服务器。只要服务器实现了CORS接口,就可以跨源通信
a. 浏览器将CORS请求分成两类:简单请求和非简单请求
-简单请求:
浏览器直接发出CORS请求。就是在请求头信息之中,增加一个Origin(协议 + 域名 + 端口)字段
(1) 请求方法是以下三种方法之一:
HEAD
GET
POST
(2) HTTP的头信息不超出以下几种字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
凡是不同时满足上面两个条件,就属于非简单请求
浏览器发现这次跨源AJAX请求是简单请求,就自动在头信息之中,添加一个Origin字段
-非简单请求
进行非简单请求时候 , 浏览器会首先发出类型为OPTIONS的“预检请
求”,请求地址相同 ,CORS服务端对“预检请求”处理,并对响应头添加
验证字段,客户端接受到预检请求的返回值进行一次请求预判断,验证
通过后,主请求发起。预检通过后,主请求与简单请求一致。