什么是浏览器跨域
浏览器同源策略 ,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。 最初,它的含义是指:A网页设置的 Cookie,B网页不能打开,除非这两个网页"同源"。所谓"同源"指的是"三个相同":
- 协议相同 http https
- 域名相同 http://a.gw.cn http://gw.cn
- 端口相同 8080 8081
总之,浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议有一个不同,都是跨域。
浏览器控制台跨域提示:
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.
springboot怎么解决
1)JSONP
2)Http响应头配置允许跨域,nginx层配置
3)程序代码中处理 SpringBoot 通过拦截器配置
//表示接受任意域名的请求,也可以指定域名
response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
//该字段可选,是个布尔值,表示是否可以携带cookie
response.setHeader("Access-Control-Allow-Credentials", "true");
//客户端所要访问的资源允许使用的方法或方法列表
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "*");