跨域问题解决 朴灿烈づ我的快乐病毒、 2022-04-10 01:17 366阅读 0赞 ## 跨域问题解决 ## > 前段时间有同事在开发中遇到了跨域问题,针对这个问题这边做一些相关说明 ### 跨域问题的出现 ### * 主要是因为前后端域名不同造成的,一般情况下可以通过nginx的服务转发处理掉这个问题(使得前后端处于同一域名下),但是当遇到不使用nginx的小型单体前后端分离的项目时,就会出现跨域问题。 * 还要了解到这么一个情况:实际上浏览器在向后端发送请求时,除一般简单请求(比如不带任何参数的GET请求)外会发送两次请求。简单请求浏览只发送一次请求,复杂请求浏览器会先发送一个OPTION请求,OPTION请求实际上就是浏览器在询问后端是否通过浏览器的跨域请求,如果请求通过,则浏览器会发送第二个真正的请求,如果OPTION请求失败,那么随后的请求就会报跨域问题 ### 解决方法 ### 遇到这种问题也很好解决的,已经知道了它产生的原因,我们只需要根据这个原理对他进行处理即可。也就是说我们只需要将OPTION通过即可,允许浏览器跨域,问题就迎刃而解了。 具体操作就是添加一个拦截器,在拦截器里拦截OPTION请求,并允许该请求跨域,跨域问题即可解决。 其实在这个地方还可以有一个扩展:比如我们可以拦截所有请求,并且可以在这判断这些请求是否是我们允许的前端发送过来的请求。不是的话,可以直接拒绝访问。
还没有评论,来说两句吧...