回答編集履歴
5
a
answer
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
# 回答の前提
|
2
|
+
|
3
|
+
修正依頼欄でもお伝えした通り、今回のようなケースではそもそも、`ajax`通信を行う必要はないかと思います。
|
4
|
+
|
5
|
+
その上で以下の回答は部分的に参考にして頂ければと思います。
|
6
|
+
|
7
|
+
また、以下のコードは質問文のコードをベースにしたコードにはなっていません。
|
8
|
+
|
9
|
+
|
1
10
|
# クライアントサイド
|
2
11
|
|
3
12
|
```
|
@@ -36,8 +45,11 @@
|
|
36
45
|
|
37
46
|
[https://codepen.io/anon/pen/Vxjjwb](https://codepen.io/anon/pen/Vxjjwb)
|
38
47
|
|
39
|
-
|
48
|
+
こちらのコードでは`jsonplaceholder.typicode.com`というデモのAPIを公開してくれているサイトに`post`リクエストを送って、`post`が成功して結果が返ってきたら、他のページへ遷移させるというコードになります。
|
40
49
|
|
50
|
+
冒頭に記載したとおり、`ajax`でリクエストを投げて、結果が返ってきたら他のurlを表示させるということ自体が一般的にはあまり行われないので、単純にここでは、`location.href`の値を変えると、他のページをブラウザーがロードしてくれるのだということだけを読み取って参考にして下さい。
|
51
|
+
|
52
|
+
|
41
53
|
# サーバーサイド
|
42
54
|
|
43
55
|
> When the parameter is an Array or Object, Express responds with the JSON
|
@@ -49,9 +61,5 @@
|
|
49
61
|
res.send({ user: 'tobi' });
|
50
62
|
```
|
51
63
|
|
52
|
-
|
64
|
+
一般的にはajax通信でサーバー側からクライアント側に返すデータ形式はjson`形式であることが多いかと思います。
|
53
|
-
`res.
|
65
|
+
`res.send()`に`object{}`か`array[]`を渡して、クライアント側に`json`データを返すようにしてください。
|
54
|
-
|
55
|
-
# 補足
|
56
|
-
|
57
|
-
修正依頼欄でもお伝えした通り、今回のようなケースでは`ajax`通信を行う必要はないかと思います。
|
4
a
answer
CHANGED
@@ -17,7 +17,8 @@
|
|
17
17
|
type: 'POST',
|
18
18
|
url: 'https://jsonplaceholder.typicode.com/posts',
|
19
19
|
data: JSON.stringify({ title: 'foo', body: 'bar', userId: 1 }),
|
20
|
-
dataType: 'json'
|
20
|
+
dataType: 'json',
|
21
|
+
contentType: 'application/json'
|
21
22
|
})
|
22
23
|
.done(function(data) {
|
23
24
|
console.log(data);
|
3
a
answer
CHANGED
@@ -49,4 +49,8 @@
|
|
49
49
|
```
|
50
50
|
|
51
51
|
|
52
|
-
`res.render()`を使うのではなく、`res.send()`に`object{}`か`array[]`を渡して、クライアント側に`json`データを返すようにしてください。
|
52
|
+
`res.render()`を使うのではなく、`res.send()`に`object{}`か`array[]`を渡して、クライアント側に`json`データを返すようにしてください。
|
53
|
+
|
54
|
+
# 補足
|
55
|
+
|
56
|
+
修正依頼欄でもお伝えした通り、今回のようなケースでは`ajax`通信を行う必要はないかと思います。
|
2
a
answer
CHANGED
@@ -35,4 +35,18 @@
|
|
35
35
|
|
36
36
|
[https://codepen.io/anon/pen/Vxjjwb](https://codepen.io/anon/pen/Vxjjwb)
|
37
37
|
|
38
|
-
Ajaxリクエストが成功した時に、他の`url`に遷移させたい場合は`location.href`の値を変更してください。
|
38
|
+
Ajaxリクエストが成功した時に、他の`url`に遷移させたい場合は`location.href`の値を変更してください。
|
39
|
+
|
40
|
+
# サーバーサイド
|
41
|
+
|
42
|
+
> When the parameter is an Array or Object, Express responds with the JSON
|
43
|
+
representation:
|
44
|
+
|
45
|
+
[https://expressjs.com/en/4x/api.html#res](https://expressjs.com/en/4x/api.html#res)
|
46
|
+
|
47
|
+
```
|
48
|
+
res.send({ user: 'tobi' });
|
49
|
+
```
|
50
|
+
|
51
|
+
|
52
|
+
`res.render()`を使うのではなく、`res.send()`に`object{}`か`array[]`を渡して、クライアント側に`json`データを返すようにしてください。
|
1
a
answer
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# クライアントサイド
|
2
|
+
|
1
3
|
```
|
2
4
|
<button id='submitButton'>Submit</button>
|
3
5
|
```
|
@@ -31,4 +33,6 @@
|
|
31
33
|
});
|
32
34
|
```
|
33
35
|
|
34
|
-
[https://codepen.io/anon/pen/Vxjjwb](https://codepen.io/anon/pen/Vxjjwb)
|
36
|
+
[https://codepen.io/anon/pen/Vxjjwb](https://codepen.io/anon/pen/Vxjjwb)
|
37
|
+
|
38
|
+
Ajaxリクエストが成功した時に、他の`url`に遷移させたい場合は`location.href`の値を変更してください。
|