关于如何处理SpringBoot中使用token鉴权出现的跨域以及预检请求问题

一、如何解决springboot跨域问题

最近公司新接手的关于众包项目,springboot2.0版本开发,接口中使用了jwt鉴权功能,在前后端分离的写法中,前端在调用需要鉴权功能的接口时都会出现跨域请求的问题,找了各种解决方法,记录一下。
话不多说直接说解决方法,同事给我的解决办法
1、在方法中添加注解==@CrossOrigin==
当然也可以直接在Controller头部添加此注解,这样就可以对整个控制器的方法解决跨域问题
在这里插入图片描述
为此,又查阅了一些其他资料关于@CrossOrigin的一些资料,可以对其携带参数
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)。
关于如何处理SpringBoot中使用token鉴权出现的跨域以及预检请求问题_第1张图片
添加完如上注解之后,跨域问题就可以解决了。
2、跨域问题解决后,前端对接过程中又出现了预检请求出现500的请求错误,就是说,ajax在对接口进行请求时,预先发出的预检请求没有通过,就更别说对后面的post、delete等相关请求的执行了。
出现问题的原因在于在springboot的Inteceptor拦截器中,无法对请求的handler进行转化成HandlerMethod,而是转化成了AbstractHandlerMapping,从而导致异常出现。

关于如何处理SpringBoot中使用token鉴权出现的跨域以及预检请求问题_第2张图片

问题根本出现在下图中,因为webConfig在对于鉴权拦截的时候出现了拦截路径配置错误,这里我为了方便,配置的是restApiInteceptor拦截器中所有方法,也可以进行部分拦截。
关于如何处理SpringBoot中使用token鉴权出现的跨域以及预检请求问题_第3张图片
说道这里,在于出现的问题就都已经解决,前端在对接过程中出现的关于跨域以及接口预检请求问题都迎刃而解了.

你可能感兴趣的:(关于如何处理SpringBoot中使用token鉴权出现的跨域以及预检请求问题)