浏览器的同源策略
MDN跨域资源共享:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS
客户端(端口3000)在发起 XHRHttpRequest,请求服务端(端口7001)接口时,就会遇到 CORS 问题,
需要在服务端设置 Access-Control-Allow-Origin 等响应头,允许来自客户端的请求,使跨域请求被允许
- 允许指定的域名和多个域名
- 允许携带cookie [Access-Control-Allow-Credentials]
- 允许获取额外的头部信息 [Access-Control-Expose-Headers]
- 允许携带的头部信息 [Access-Control-Allow-Headers]
设置 header头
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST,OPTIONS,GET");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "accept,x-requested-with,Content-Type");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Origin", "http://192.168.10.118:8070");
非简单请求
浏览器将CORS请求分成两类:
简单请求(simple request)
非简单请求(not-so-simple request
简单请求
只要同时满足以下两大条件,就属于简单请求,凡是不同时满足下面两个条件,就属于非简单请求
请求方法是以下三种方法之一:
HEAD
GET
POST
HTTP的头信息不超出以下几种字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值 application/x-www-form-urlencoded、multipart/form-data、text/plain
浏览器发现这次跨源AJAX请求是简单请求,就自动在头信息之中,添加一个Origin字段
Origin字段用来说明,本次请求来自哪个源(协议 + 域名 + 端口
服务器根据这个值,决定是否同意这次请求
https://blog.csdn.net/u012501054/article/details/84519574