跨域解决方案java(跨域解决方案vue)

跨域解决方案java(跨域解决方案vue)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

Access to XMLHttpRequest at ‘http://localhost:8087/api/user/list’ from origin ‘http://localhost:8081’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
在这里插入图片描述
讯享网

简单一句话概况:

还不懂这个概念就找度娘吧,在这个博文里解释概念不是重点哈。

配置proxy来支持跨域,向后台请求登陆和数据,在 配置文件中配置代理

方法一和方法二配置了也有可能不生效,还是爆跨越错误,请看第三点

这个方法是有缺点的,只能配置一个。推荐使用方法二

讯享网
 

a、axios 的 baseURL配置

我们在配置axios的全局地址时,一般是这样配置的:

讯享网

还有可能不是这样直接配置的,而且先定义的变量,通过其他配置在取这个,但是这个一定是会配置的,我一般是定义下面的这个变量的,方便管理

 

b、解决问题

所以不论是 还是 环境下,我的请求都会发送给我们配置的,

所以我们得修改一下配置,使我们的生产路径在开大环境下才生效

讯享网

这样在开发环境下,我们的 , 代理就可以生效了。

注意

  • 还有一点就是,即使我们的代理生效了,但是在浏览器请求头中展示的也不是配置的代理地址;
  • 所以测的时候得多问问后端请求过去没有,或者自己node搭个简易的服务器看看成没成功;
  • 不要一根筋的死盯浏览器的请求头地址。
  • 借鉴的博客vue.config.js 中 devServer.proxy 配置说明,以及配置正确不生效问题

借鉴博文SpringBoot解决跨域的5种方式

对于 CORS的跨域请求,主要有以下几种方式可供选择:

  1. 返回新的CorsFilter(全局跨域)
  2. 重写 WebMvcConfigurer(全局跨域)
  3. 使用注解 @CrossOrigin(局部跨域)
  4. 手动设置响应头 (HttpServletResponse) (局部跨域)
  5. 自定web filter 过滤器 实现跨域 (全局跨域)
  6. 自定义 springboot interceptor 拦截器 实现跨域 (全局跨域)

注意:

  1. 需要 SpringMVC 4.2以上版本才支持,对应springBoot 1.3版本以上
  2. 上面前两种方式属于全局 CORS 配置,后两种属于局部 CORS配置。如果使用了局部跨域是会覆盖全局跨域的规则,所以可以通过 @CrossOrigin 注解来进行细粒度更高的跨域资源控制。
  3. 其实无论哪种方案,最终目的都是修改响应头,向响应头中添加浏览器所要求的数据,进而实现跨域

 
讯享网
 

在控制器(类上)上使用注解 @CrossOrigin:,表示该类的所有方法允许跨域。

讯享网

在方法上使用注解 @CrossOrigin:

 

使用 HttpServletResponse 对象添加响应头(Access-Control-Allow-Origin)来授权原始域,这里 Origin的值也可以设置为 “*”,表示全部放行。

讯享网

首先编写一个过滤器,可以起名字为MyCorsFilter.java

 

先写拦截器MyInterceptor.java的实现类

讯享网

在写WebAppConfig.java,重写 WebMvcConfigurer.java 类,将拦截器注入(我这里写的是对请求的过滤,可以忽略掉)

 

小讯
上一篇 2025-05-31 21:05
下一篇 2025-05-03 09:42

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/171800.html