- 同源策略: 访问的域名或端口和请求的域名端口至少有一个不同, 就会拒绝访问
- 跨域值的实际是, 浏览器不能执行其他网站的脚本. 它是由于浏览器的同源策略造成, 是浏览器对js是假的安全限制
- 跨域:
- 就是浏览器访问页面A, 在页面A下, 浏览器访问了不同源的页面B来获取信息, 那么这就是跨域
- 如果直接开放跨域, 是很危险的, 比如可以直接访问购物网站, 此时携带着你的cookie, 代替你执行购买操作
- 简单请求(一般的请求), 是要在请求头中加入origin字段, 值为当前的网页url, server来判断是否同源, 如果同源, 则可以返回正常的响应, 如果不行, 则响应失败
- 非简单请求(put, delete), 以为非简单, 所以操作复杂一些, 会先向server发送options请求, 携带origin字段表名来自哪个页面, 然后看server的回应, 然后再决定是否发送真实请求
- 解决跨域:
-
使用nginx
- 例如, 前端是81端口, 后端是82端口, 81返回的静态资源中有部分需要请求82, 那么此时, 简单请求就会跨域
- 此时, 用nginx来进行处理, 它是80端口. 我不访问前端, 而是访问nginx, 80端口返回静态资源, 然后,浏览器又请求动态资源, 通过url中的资源名api指定, nginx收到之后, 路由转发, 此时, 这个动态请求的端口和浏览器的当前页面端口都是80, 所以就不存在跨域问题了
-
服务端允许跨域
- 在网关服务中配置corsWebFilter过滤器, 配置允许跨域的 域空间
-
何为跨域, 如何解决?
猜你喜欢
转载自blog.csdn.net/qq_34687559/article/details/117735835
今日推荐
周排行