应用使用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
值,是什么原因,求解!
질문을 단순화하기 위해 질문의 의미에 따라 후속 토큰 처리 부분은 무시해야 합니다. 현재 Ajax 요청에는 토큰이 없습니다. 그런 다음 먼저 페이지의 토큰이 출력되었는지 확인해야 합니다. 간단한 스트레스 테스트를 통해 결과를 확인할 수 있습니다. js 코드에 문제가 없으면 값이 존재하는 한 전송됩니다. 그래서 이전 토큰에 문제가 있어서 이 값이 페이지에 출력되지 않는 것 같습니다.
토큰은 js 코드로 하드코딩하는 것을 권장하지 않으며, 숨겨진 도메인에 작성하는 것을 권장합니다. 그런 다음 js는 다시 값을 얻습니다.