应用使用Struts2、Ajax构建,其中某一业务需要使用Token,限制用户提交一次有效,Token后端是放Redis中,使用SESSIONID作为Key(相当于放SESSION中),前端使用一个JS变量来接收生成的Token。在后续提交业务请求时,需要将此JS中的Token值传递到后端,用来校验,但现在发现很多请求没有Token值,求解。JS里的Token变量是在加载页面(index.jsp)时由一个Action转发过来的,这个过程中会写入Token值到JS变量中<script >var token = "${token}" ;</script>后面的业务使用Ajax提交,提交时参数使用token变量作为参数之一提交到后端进行校验,后端日志发现大量请求没有Token值,是什么原因,求解!
2 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
简化一下问题,看题主的意思,后面的 token 处理部分应该都可以先不管,目前是 ajax 请求中就没 token。那么,首先需要确认,是否页面上的 token 被输出上去了。可以简单压测一下看看结果。如果 js 代码没问题的话,那么只要值存在便会发过去。所以感觉可能是再前面的 token 产生部分的问题,导致页面上没输出这个值。
对了,如果允许的话,线上可以尝试添加一点日志,在输出document的时候记录一下输出的token,看看对不对,如果是对的至少能排除掉前面出问题的可能。
添加回答
举报
0/150
提交
取消