cari

Rumah  >  Soal Jawab  >  teks badan

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 hari yang lalu431

membalas semua(2)saya akan balas

  • 伊谢尔伦

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

    Untuk memudahkan soalan, bergantung pada maksud soalan, bahagian pemprosesan token berikutnya harus diabaikan pada masa ini, tiada token dalam permintaan ajax. Kemudian, mula-mula anda perlu mengesahkan sama ada token pada halaman telah dikeluarkan. Anda boleh melakukan ujian tekanan mudah untuk melihat hasilnya. Jika tiada masalah dengan kod js, maka nilai akan dihantar selagi ia wujud. Jadi nampaknya mungkin terdapat masalah dengan token sebelumnya, menyebabkan nilai ini tidak akan dikeluarkan pada halaman.

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:45:12

    Token tidak disyorkan untuk dikodkan dengan keras ke dalam kod js. Adalah disyorkan untuk menulisnya dalam domain tersembunyi. Kemudian js mendapat nilai semula.

    balas
    0
  • Batalbalas