java - 使用Token限制用户提交请求一次有效,但经常前端取不到Token
高洛峰
高洛峰 2017-04-17 17:43:12
0
2
417

应用使用Struts2Ajax构建,其中某一业务需要使用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值,是什么原因,求解!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(2)
伊谢尔伦

簡化一下問題,看題主的意思,後面的 token 處理部分應該都可以先不管,目前是 ajax 請求中就沒 token。那麼,首先需要確認,是否頁面上的 token 被輸出上去了。可以簡單壓測一下看看結果。如果 js 程式碼沒問題的話,那麼只要值存在就會發過去。所以感覺可能是再前面的 token 產生部分的問題,導致頁面上沒輸出這個值。

左手右手慢动作

token不建議 硬編碼到js程式碼中,建議 寫到一個hidden域中。然後js再取值。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板