OPTIONS请求时设置了Header请求和token可是后台接收不到,为什么?
0 条评论原文地址:https://blog.csdn.net/qq_35860138/article/details/85340769
1、首先,说一下我们的项目情况,我们项目中后端有一个拦截器,如果必须要登录的接口路径会被拦下来检查,前端要传一个token【我们项目中叫sessionId】,然后后端根据这个token来判断redis中这个用户是否已经登录。
2、但是现在问题出现了,就是这个sessionId就是死活传不过来,试了各种办法还是不行,感觉像是前端的问题又像是后端的问题,心态接近爆炸,这个时候就开始冷静从头想到尾,看看到底是哪里的问题。
3、于是看每一步的细节啊,下面是那个找问题的过程截图:
【1】前端的请求header信息
【2】
【3】前端控制台的报错信息
【4】后端的日志信息
4、看问题截图,有个重要错误信息:就是OPTIONS请求出错,这个时候去搜资料,看到各种说法
【1】有的说,好像是OPTIONS请求无法携带自定义header
【2】有的说后端网关会拦截OPTIONS请求
。。。。。。
5、最后一个一个尝试,下面的方法可以:
在拦截器中加几行代码:
//添加这行代码,让OPTIONS请求通过
if (httpServletRequest.getMethod().equals(“OPTIONS”)) {
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
return true;
}
6、OK、一切正常!
- 本文链接:https://xuehuayu.cn/article/17246.html
- 版权声明:① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 标为转载的文章来自网络,已标明出处,侵删。