为啥就你的springboot跨域失效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥就你的springboot跨域失效相关的知识,希望对你有一定的参考价值。
参考技术A跨域问题是前后端在联调当中常常会碰到的问题,但是有些骚操作可能会影响正常的跨域请求。
比如说:在和第三方公司联调的过程,第三方需要调用我们的服务。然后那报错了,跨域请求失败。
三方问:你们的后台有解决跨域吗?为什么会跨域失败。
我:直接把代码截图发过去。
三方问:那为什么会跨域失败那,我问了我们这边的后台说只要解决了就不会有跨域的问题。( wo ca!!! 就这一句话我就炸了。语气里满是不信任。这不怼你留着过年!但是怼人要有证据。开启了疯狂的分析之路! )
先 研究一下 Access-Control-Allow-Credentials 这个头的作用。这个是服务端下发到客户端的 response 中头部字段,意义是允许客户端携带验证信息,例如 cookie 之类的。这样客户端在发起跨域请求的时候,不就可以携带允许的头,还可以携带验证信息的头,又由于客户端是请求框架是 axios,并且手残的设置了 withCredentials: true ,意思是客户端想要携带验证信息头,但是我的服务端设置是 \'supportsCredentials\' => false, ,表示不允许携带信息头。
我们的客户端和服务端交互的时候使用的是 token,通过 Authorization头发送到服务端,并没有使用到 cookie,所以客户端没有必要设置 withCredentials: true ,一顿操作猛如虎。
既然找到了原因证明不是我们服务的问题,那!!!! 小样
我:直接把跨域经过,讲了一遍。然后又问他你们怎么调用的接口。
三方:我们是在前端直接掉的。
我:你们是不是修改了axios的参数
三方:是
我:你不要用自己封装的axios,直接用axios
三方: 可以访问了。
我:是我的服务问题吗?你们的后台说得对吗?了解了吗(灵魂三问)
温馨提示:友好的对待你的对接人,没准下一个就是你的同事!
以上是关于为啥就你的springboot跨域失效的主要内容,如果未能解决你的问题,请参考以下文章