跨域与同源策略

  • Same-origin policy也就是同源策略;是为了防止假冒网站冒充源网站,对网站进行了一些限制,主要有 Cookie、LocalStorage 和 IndexDB 无法读取DOM 无法获得AJAX 请求不能发送,同时还规定,提交表单不受同源政策的限制。
  • 最初,它的含义是指,A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同"。协议相同(http)、域名相同(www.amazon.com)、端口相同(80);
  • 但有时,我们就需要去跨网站请求,这就需要用到跨域了 Cross-origin resource sharing也就是 CORS 技术;

简单请求:
(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

上面为简单请求,浏览器会添加一个Origin字段表明来自哪个源(协议 + 域名 + 端口)服务器根据这个值,决定是否同意这次请求。

同意后,返回请求头包含Access-Control-Allow-Origin字段(与CORS请求相关的字段,都以Access-Control-开头),它的值要么是请求服务器的字段,要么是 *,代表谁都可以。

非简单请求:
(1)请求方法是PUT或DELETE
(2)Content-Type字段的类型为 application/json

非简单请求的CORS请求,会在正式通信之前,增加一次HTTP查询请求,称为"预检"请求(preflight)

猜你喜欢

转载自blog.csdn.net/howeres/article/details/115410855