찾다

 >  Q&A  >  본문

java - 使用Token限制用户提交请求一次有效,但经常前端取不到Token

应用使用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值,是什么原因,求解!

高洛峰高洛峰2887일 전429

모든 응답(2)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:45:12

    질문을 단순화하기 위해 질문의 의미에 따라 후속 토큰 처리 부분은 무시해야 합니다. 현재 Ajax 요청에는 토큰이 없습니다. 그런 다음 먼저 페이지의 토큰이 출력되었는지 확인해야 합니다. 간단한 스트레스 테스트를 통해 결과를 확인할 수 있습니다. js 코드에 문제가 없으면 값이 존재하는 한 전송됩니다. 그래서 이전 토큰에 문제가 있어서 이 값이 페이지에 출력되지 않는 것 같습니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-17 17:45:12

    토큰은 js 코드로 하드코딩하는 것을 권장하지 않으며, 숨겨진 도메인에 작성하는 것을 권장합니다. 그런 다음 js는 다시 값을 얻습니다.

    회신하다
    0
  • 취소회신하다