应用使用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
值,是什么原因,求解!
伊谢尔伦2017-04-17 17:45:12
質問を簡略化するために、質問の意味に応じて、後続のトークン処理部分は無視する必要があります。現時点では、ajax リクエストにはトークンがありません。次に、まずページ上のトークンが出力されているかどうかを確認する必要があります。簡単なストレス テストを実行して結果を確認できます。 jsコードに問題がなければ、値が存在する限り送信されます。したがって、前のトークンに問題があり、この値がページに出力されない可能性があるようです。
ringa_lee2017-04-17 17:45:12
トークンを js コードにハードコーディングすることは推奨されません。非表示のドメインに記述することをお勧めします。その後、js は値を再度取得します。