回答編集履歴
2
誤字の修正
answer
CHANGED
@@ -19,8 +19,8 @@
|
|
19
19
|
contentType: 'application/json',
|
20
20
|
scriptCharset: 'UTC',
|
21
21
|
headers: {
|
22
|
-
'X-CSRF-TOKEN': token
|
22
|
+
'X-CSRF-TOKEN': token,
|
23
|
-
'X-XSRF-TOKEN': token
|
23
|
+
'X-XSRF-TOKEN': token,
|
24
24
|
},
|
25
25
|
success: function (outdata, dataType) {
|
26
26
|
if (outdata[0] == 'OK') alert('メール送信しました');
|
1
解決法として提示したソースコードの修正
answer
CHANGED
@@ -3,17 +3,14 @@
|
|
3
3
|
("./sendmail"に限りログインを不要にすることもできますが、メール送信機能であることを考えると不適切と思います)
|
4
4
|
|
5
5
|
ここで必要な「ログイン情報」というのは、こちらで試した限り、
|
6
|
-
- Cookieに保持されている"XSRF-TOKEN"
|
7
|
-
- フォームからの情報送信時に必要な"CSRF-TOKEN"
|
6
|
+
- フォームからの情報送信時に必要な"CSRF-TOKEN"、"XSRF-TOKEN"
|
8
7
|
|
9
8
|
の2種類です。(formのaction属性にURLを指定し、submitボタンを押したときには、自動でこれらの情報が渡されるようになっています)
|
10
9
|
|
11
10
|
下記のように変更することで動作しないでしょうか??
|
11
|
+
(追記:ソースの内容を修正しました)
|
12
12
|
```
|
13
|
-
let xsrfToken = document.cookie
|
14
|
-
.split('; ')
|
15
|
-
|
13
|
+
let token = $('input[name="_csrf"]').val();
|
16
|
-
.split('=')[1]
|
17
14
|
$.ajax({
|
18
15
|
type: 'POST',
|
19
16
|
url: './sendmail',
|
@@ -22,8 +19,8 @@
|
|
22
19
|
contentType: 'application/json',
|
23
20
|
scriptCharset: 'UTC',
|
24
21
|
headers: {
|
25
|
-
'X-CSRF-TOKEN':
|
22
|
+
'X-CSRF-TOKEN': token ,
|
26
|
-
'X-XSRF-TOKEN':
|
23
|
+
'X-XSRF-TOKEN': token ,
|
27
24
|
},
|
28
25
|
success: function (outdata, dataType) {
|
29
26
|
if (outdata[0] == 'OK') alert('メール送信しました');
|