teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記

2018/11/06 04:12

投稿

mk222222
mk222222

スコア59

title CHANGED
File without changes
body CHANGED
@@ -20,4 +20,34 @@
20
20
  ・thymeleaf+ajax(javascript)でトークンを取得する記述の仕方が知りたい
21
21
  ・取得したあとコントローラ(webのConfiger?)になにか追記する必要があるのか
22
22
 
23
- 上記二点についてよろしくお願いいたします。
23
+ 上記二点についてよろしくお願いいたします。
24
+
25
+ 追記
26
+ アドバイス参考に実装してみましたがうまくいきませんでした。
27
+ ボタン押下時にjsでトークンをhiddenにセットして一応ajaxsendでRequestHeaderにもトークンをセットしました。
28
+ デバッグして確かにトークンをセットしてるのを確認しましたが、
29
+ やはりタイムアウト後にログインするとセッションタイムアウトページに飛んじゃいます。
30
+ うーん。難しいずらね。
31
+ ```ここに言語を入力
32
+ login.html
33
+ <meta name="_csrf_header" th:content="${_csrf.headerName}" />
34
+ <meta name="_csrf" th:content="${_csrf.token}" />
35
+
36
+ <input type="hidden" id="csrfToken" th:name="${_csrf.headerName}" />
37
+ <input type="button" id="loginButton" value="ログイン" />
38
+ ```
39
+ ```ここに言語を入力
40
+ login.js
41
+ // ログイン時csrfトークン取得
42
+ $(function() {
43
+ $('#loginButton').on('click', function() {
44
+ var headerName =$("meta[name='_csrf_header']").attr("content");
45
+ var tokenValue =$("meta[name='_csrf']").attr("content");
46
+ $(document).ajaxSend(function(e,xhr,options){
47
+ xhr.setRequestHeader(headerName,tokenValue);
48
+ });
49
+ $('#csrfToken').val(tokenValue);
50
+ $('#form').submit();
51
+ });
52
+ });
53
+ ```