网站首页 > 技术文章 正文
一、什么是跨域
前端页面与后台服务必须同源,即协议,域名,端口都要相同,其中有一个不同都会产生跨域;
如下图,加深理解
二、解决方案
1、jsonp
前后端需要特殊处理,代码不够简洁通用。服务器返回jsonp格式。
不推荐
2、nginx
nginx起转发的作用,实际就是把web项目和后端接口项目放到一个域中,但是需要运维特殊配置,不够通用。
不推荐
3、cors
利用springboot 网关统一配置过滤器,所有请求经过该网关路由转发到内部各服务器,不需要前端再做任何处理。
记住这一点,强烈推荐。
附过滤器源码
@Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); final CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 允许cookies跨域 config.addAllowedOrigin("*");// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin config.addAllowedHeader("*");// #允许访问的头信息,*表示全部 config.setMaxAge(3600L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了 config.addAllowedMethod("*");// 允许提交请求的方法,*表示全部允许 source.registerCorsConfiguration("/**", config); return new CorsFilter(source); } }
zuul yml配置
zuul: #需要忽略的头部信息,不在传播到其他服务 sensitive-headers: Access-Control-Allow-Origin ignored-headers: Access-Control-Allow-Origin,H-APP-Id,Token,APPToken max: host: connections: 5000 #最大请求时间 host: #等待 socket-timeout-millis: 60000 connect-timeout-millis: 60000
- 上一篇: java前后端分离ajax访问跨域问题解决办法
- 下一篇: 一文带你彻底搞懂跨域那些事(不只会用)
猜你喜欢
- 2024-09-27 ASP.NET实战007:MVC解决跨域请求问题详解
- 2024-09-27 一文带你彻底搞懂跨域那些事(不只会用)
- 2024-09-27 springboot 跨域问题解决方法 springboot如何解决跨域
- 2024-09-27 java前后端分离ajax访问跨域问题解决办法
- 2024-09-27 SpringBoot跨域问题解决方案 springboot 跨域问题
- 2024-09-27 HTTP请求跨域问题及解决方案 什么是跨域请求
- 2024-09-27 springboot解决js前端跨域问题,javascript跨域问题解决
- 2024-09-27 多学一招总没错吧?SpringBoot解决前后端分离的跨域问题
- 2024-09-27 Springboot项目中几种跨域的解决方法
- 2024-09-27 浏览器跨域问题以及常用解决方案 浏览器跨域访问设置
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)