网站优化大计,网站广告怎么做,简单的html网页设计,快乐麻花网站源码目录 1. 什么是跨域问题 #xff1f;
2. Spring MVC 如何解决跨域问题 #xff1f;
3. Spring Boot 如何解决跨域问题 #xff1f; 1. 什么是跨域问题 #xff1f;
跨域问题指的是不同站点之间#xff0c;使用 ajax 无法相互调用的问题。
跨域问题的 3 种情况#x…目录 1. 什么是跨域问题
2. Spring MVC 如何解决跨域问题
3. Spring Boot 如何解决跨域问题 1. 什么是跨域问题
跨域问题指的是不同站点之间使用 ajax 无法相互调用的问题。
跨域问题的 3 种情况
1. 协议不同例如 http 和 https
http://127.0.0.1:8080https://127.0.0.1:8080
2. 域名不同
一级域名、二级域名..不同都算跨域请求
3. 端口不同.
80443 为什么要有跨域问题 跨域问题本质上是浏览器的一种保护机制它诞生的初衷是为了保证用户的安全防止恶意网站窃取数据。但是这个保护机制也带来新的问题它使得不同站点之间的正常调用也会遇到阻碍。 2. Spring MVC 如何解决跨域问题
1. 定义一个配置类
2. 在配置类中写一个方法返回 WebMvcConfigurer 对象并重写 addCorsMappings 方法。
Configuration
public class MyConfiguration {Beanpublic WebMvcConfigurer corsConfigurer() {return new WebMvcConfigurer() {Overridepublic void addCorsMappings(CorsRegistry registry) {// 设置允许跨域的请求规则【响应头里添加标识】registry.addMapping(/api/**);}};}
} 跨域问题它的请求可以到达后端只不过在后端返回响应给前端的时候浏览器会做跨域问题的验证。
为什么不在前端验证 ?
因为前端代码是可以修改的通过开发者工具都是可以伪造的所以在前端验证没有意义。 3. Spring Boot 如何解决跨域问题
在 Spring Boot 中解决跨域问题常见的方式有 5 种
1. 使用 CrossOrigin 注解实现跨域【局部跨域】
2. 通过配置文件实现跨域【最常见 - 全局跨域】
3. 通过 CorsFilter 对象实现跨域【全局跨域】
4. 通过 Response 对象实现跨域【局部跨域】
5. 通过实现 ResponseBodyAdvice 实现跨域。【次常见 - 全局跨域】
具体的实现如下
① 使用 CorsOrigin 注解实现跨域 CorsOrigin 注解既可以加在类上又可以加在方法上修饰类表示这个类种所有接口都可以跨域修饰方法表示这个方法可以跨域。
RestController
CrossOrigin(origins *)
public class TestController {RequestMapping(/test)public HashMapString,Object test() {HashMapString,Object map new HashMap();map.put(code,200);map.put(data,success);map.put(msg,);return map;}
}
这种方式只能实现局部跨域当一个项目中有多个类的时候使用这种方式就会比较麻烦。
② 通过配置文件实现跨域
创建一个新的配置类添加 Configuration 注解实现 WebMvcConfigurer 接口重写 addCorsMappings 方法设置允许跨域。
这种方式可以实现全局跨域和 Spring MVC 里面一样
Configuration
public class MyConfiguration implements WebMvcConfigurer{Overridepublic void addCorsMappings(CorsRegistry registry) {// 设置允许跨域的请求规则registry.addMapping(/**).allowCredentials(true) // 是否发送 Cookie.allowedOriginPatterns(*) // 支持跨域// 支持方法.allowedMethods(new String[]{GET,POST,PUT,DELETE}).allowedHeaders(*).exposedHeaders(*);}
}③ 通过 CorsFilter 对象实现跨域
这种方式和方式 ② 类似只不过此处是通过给方法加上 Bean 注解返回一个 CorsFilter 对象
④ 通过 Response 对象实现跨域
这种方式是解决跨域问题最原始的方式它可以支持所有版本的 Spring Boot但是这种方式也是局部跨域。
RestController
public class TestController {RequestMapping(/test)public HashMapString,Object test(HttpServletResponse response) {// 设置跨域response.setHeader(Access-Control-Allow-Origin,*);return new HashMapString, Object() {{put(code,200);put(data,success);put(msg,);}};}
}
⑤ 通过实现 ResponseBodyAdvice 实现跨域 这个接口可以用于集中统一处理在统一数据返回的时候我们就可以实现这个接口在数据即将返回给前端的时候在响应头种加上一个 “我是自己人” 的标识就可以实现跨域了这种方式也是全局跨域。
ControllerAdvice
public class ResponseAdvice implements ResponseBodyAdvice {Overridepublic boolean supports(MethodParameter returnType, Class converterType) {return true; // 返回 true, 才能执行后续方式}Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {// 设置跨域response.getHeaders().set(Access-Control-Allow-Origin,*);return body;}
} 文章转载自: http://www.morning.cxtbh.cn.gov.cn.cxtbh.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.wsyst.cn.gov.cn.wsyst.cn http://www.morning.gbcnz.cn.gov.cn.gbcnz.cn http://www.morning.xjmpg.cn.gov.cn.xjmpg.cn http://www.morning.qyxnf.cn.gov.cn.qyxnf.cn http://www.morning.cknrs.cn.gov.cn.cknrs.cn http://www.morning.yrddl.cn.gov.cn.yrddl.cn http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.wfyqn.cn.gov.cn.wfyqn.cn http://www.morning.ffptd.cn.gov.cn.ffptd.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn http://www.morning.nftzn.cn.gov.cn.nftzn.cn http://www.morning.redhoma.com.gov.cn.redhoma.com http://www.morning.pzpj.cn.gov.cn.pzpj.cn http://www.morning.jypqx.cn.gov.cn.jypqx.cn http://www.morning.nckzt.cn.gov.cn.nckzt.cn http://www.morning.mlbn.cn.gov.cn.mlbn.cn http://www.morning.qwgct.cn.gov.cn.qwgct.cn http://www.morning.xhjjs.cn.gov.cn.xhjjs.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.brnwc.cn.gov.cn.brnwc.cn http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn http://www.morning.gyfhk.cn.gov.cn.gyfhk.cn http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.znkls.cn.gov.cn.znkls.cn http://www.morning.mgmyt.cn.gov.cn.mgmyt.cn http://www.morning.muniubangcaishui.cn.gov.cn.muniubangcaishui.cn http://www.morning.wbysj.cn.gov.cn.wbysj.cn http://www.morning.kzslk.cn.gov.cn.kzslk.cn http://www.morning.rbkml.cn.gov.cn.rbkml.cn http://www.morning.spqbp.cn.gov.cn.spqbp.cn http://www.morning.srbl.cn.gov.cn.srbl.cn http://www.morning.kgjyy.cn.gov.cn.kgjyy.cn http://www.morning.lcwhn.cn.gov.cn.lcwhn.cn http://www.morning.npbnc.cn.gov.cn.npbnc.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn http://www.morning.mkfhx.cn.gov.cn.mkfhx.cn http://www.morning.kmkpm.cn.gov.cn.kmkpm.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.ckhry.cn.gov.cn.ckhry.cn http://www.morning.wxfjx.cn.gov.cn.wxfjx.cn http://www.morning.twpq.cn.gov.cn.twpq.cn http://www.morning.rsjng.cn.gov.cn.rsjng.cn http://www.morning.lbcbq.cn.gov.cn.lbcbq.cn http://www.morning.1000sh.com.gov.cn.1000sh.com http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.jbblf.cn.gov.cn.jbblf.cn http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn http://www.morning.ynjhk.cn.gov.cn.ynjhk.cn http://www.morning.qbwbs.cn.gov.cn.qbwbs.cn http://www.morning.yjxfj.cn.gov.cn.yjxfj.cn http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn http://www.morning.krdxz.cn.gov.cn.krdxz.cn http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn http://www.morning.tkhyk.cn.gov.cn.tkhyk.cn http://www.morning.pghgq.cn.gov.cn.pghgq.cn http://www.morning.qynnw.cn.gov.cn.qynnw.cn http://www.morning.gctgc.cn.gov.cn.gctgc.cn http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn http://www.morning.btcgq.cn.gov.cn.btcgq.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.dwyyf.cn.gov.cn.dwyyf.cn http://www.morning.xsklp.cn.gov.cn.xsklp.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn http://www.morning.swimstaracademy.cn.gov.cn.swimstaracademy.cn http://www.morning.twmp.cn.gov.cn.twmp.cn http://www.morning.ypbdr.cn.gov.cn.ypbdr.cn http://www.morning.tllhz.cn.gov.cn.tllhz.cn http://www.morning.rqsr.cn.gov.cn.rqsr.cn http://www.morning.dmwck.cn.gov.cn.dmwck.cn http://www.morning.qmrsf.cn.gov.cn.qmrsf.cn