在开发过程中,偶遇前端跨域请求访问服务的情况,根据需求,vue在发出跨域访问请求时,浏览器因安全问题禁止发送此类请求。
解决问题1:
Vue前端解决跨域问题
Vue学习总结-Vue前端解决跨域问题_vue前端解决跨域的三种方法_白不懂黑的静的博客-CSDN博客
解决问题2:
在前端开启跨域请求访问后,发现跨域请求依旧失败
具体报错问题可以总结为Access-Control-Allow-Headers中添加了不被允许的请求值,
我的项目中此问题为在请求头中添加了自定义token值,引发的服务器拒绝跨域访问请求,
最后根据实践,最终确认几种解决方案中使用配置corsFilter或使用@CrossOrigin 注解
来解决此问题(@CrossOrigin 注解可以在方法和controller中使用)
解决问题3:
在使用@CrossOrigin 注解 后跨域访问依旧失败,最后使用全局注册corsFilter解决问题时发现,系统中存在自定义jar工具类已经注册了corsFilter的同名bean,所以跨域访问的请求均被此处进行拦截,无法完成跨域请求访问,最后采用在springboot启动类上加@CompontScan(excludeFilters={@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE,classes = {xxxxxx.class})})
的方式 ,屏蔽了自定义jar包中的corsFilter,至此 重新启动项目,前端跨域请求访问成功。
项目为内网项目,源码无法观看 ,坑啊!!!!!!!!!!!!!1111