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的跨域请求,主要有以下几种方式可供选择:
- 返回新的CorsFilter(全局跨域)
- 重写 WebMvcConfigurer(全局跨域)
- 使用注解 @CrossOrigin(局部跨域)
- 手动设置响应头 (HttpServletResponse) (局部跨域)
- 自定web filter 过滤器 实现跨域 (全局跨域)
- 自定义 springboot interceptor 拦截器 实现跨域 (全局跨域)
注意:
- 需要 SpringMVC 4.2以上版本才支持,对应springBoot 1.3版本以上
- 上面前两种方式属于全局 CORS 配置,后两种属于局部 CORS配置。如果使用了局部跨域是会覆盖全局跨域的规则,所以可以通过 @CrossOrigin 注解来进行细粒度更高的跨域资源控制。
- 其实无论哪种方案,最终目的都是修改响应头,向响应头中添加浏览器所要求的数据,进而实现跨域
在控制器(类上)上使用注解 @CrossOrigin:,表示该类的所有方法允许跨域。
在方法上使用注解 @CrossOrigin:
使用 HttpServletResponse 对象添加响应头(Access-Control-Allow-Origin)来授权原始域,这里 Origin的值也可以设置为 “*”,表示全部放行。
首先编写一个过滤器,可以起名字为MyCorsFilter.java
先写拦截器MyInterceptor.java的实现类
在写WebAppConfig.java,重写 WebMvcConfigurer.java 类,将拦截器注入(我这里写的是对请求的过滤,可以忽略掉)
到此这篇跨域解决方案java(跨域解决方案vue)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/qdvuejs/24373.html
