質問編集履歴
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,107 +1 @@
|
|
1
|
-
## 解決したいこと
|
2
|
-
|
3
|
-
* お問い合わせフォームの見た目をVue.jsで作っており、最後のPOST送信ができなくて困っています。送信できるようにしたいです。
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
## 現在のコードと状況
|
8
|
-
|
9
|
-
|
1
|
+
一部不具合を含んだコードや誤った記述があったため、質問を削除しました。再度調べ直して投稿します。
|
10
|
-
|
11
|
-
![イメージ説明](42e7080ae193024ffa5ef6e4ef36d3ab.png)
|
12
|
-
|
13
|
-
* Vue.jsの他の箇所においては問題なく動いていた
|
14
|
-
|
15
|
-
* axiosでgetができているかを確認したところ、それは問題なくできていた
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
**コード(該当の箇所)**
|
22
|
-
|
23
|
-
```
|
24
|
-
|
25
|
-
// isFilledForはフォームが全て埋められているかのチェックを行っていて、これについては正常に動いている)
|
26
|
-
|
27
|
-
if (isFilledForm) {
|
28
|
-
|
29
|
-
const formPostData = {
|
30
|
-
|
31
|
-
name : this.formLists.name.inputValue,
|
32
|
-
|
33
|
-
telnumber : this.formLists.tel.inputValue,
|
34
|
-
|
35
|
-
email : this.formLists.email.inputValue,
|
36
|
-
|
37
|
-
company_name : this.formLists.companyName.inputValue,
|
38
|
-
|
39
|
-
company_type : this.formLists.companyType.inputValue,
|
40
|
-
|
41
|
-
}
|
42
|
-
|
43
|
-
console.log(formPostData) // 確認用(これはきちんと表示されている)
|
44
|
-
|
45
|
-
axios.post('/api/v1/request_docs', formPostData)
|
46
|
-
|
47
|
-
.then(function(response) {
|
48
|
-
|
49
|
-
console.log('ok') // 確認用
|
50
|
-
|
51
|
-
console.log(response) // 確認用
|
52
|
-
|
53
|
-
this.isComplete = true // isCompleteは問い合わせ完了時にモーダルを出すためのもの。これもaxios導入前まではきちんと動いていた
|
54
|
-
|
55
|
-
})
|
56
|
-
|
57
|
-
.catch(function(error) {
|
58
|
-
|
59
|
-
console.log('error') // 確認用
|
60
|
-
|
61
|
-
return error.response
|
62
|
-
|
63
|
-
})
|
64
|
-
|
65
|
-
}
|
66
|
-
|
67
|
-
```
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
## エラーメッセージ
|
72
|
-
|
73
|
-
* フォームを全て埋めて送信ボタンをクリックすると
|
74
|
-
|
75
|
-
`spread.js:25 POST http://localhost:3000/api/v1/request_docs 500 (Internal Server Error)`
|
76
|
-
|
77
|
-
となってしまい、送信ができません。
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
## 原因だと思っている箇所
|
82
|
-
|
83
|
-
* POSTの送信の方法が間違っており、そもそも送信できていない
|
84
|
-
|
85
|
-
```
|
86
|
-
|
87
|
-
axios.post('/api/v1/request_docs', formPostData)
|
88
|
-
|
89
|
-
.then(function(response) {
|
90
|
-
|
91
|
-
console.log('ok')
|
92
|
-
|
93
|
-
console.log(response) // 確認用
|
94
|
-
|
95
|
-
this.isComplete = true // isCompleteは問い合わせ完了時にモーダルを出すためのもの。これもaxios導入前まではきちんと動いていた
|
96
|
-
|
97
|
-
})
|
98
|
-
|
99
|
-
```
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
* RailsのAPI送信時に、最後の`company_type`は選択肢の文字列ではなく、それを英単語に変換したもので送られるので、そこの値が変換されていない
|
104
|
-
|
105
|
-
例)フォームの選択肢に「広告主」というものがあるが、それを選択肢した時にthis.formLists.companyType.inputValueに入ってくるのは"広告主"という文字列。
|
106
|
-
|
107
|
-
POST送信が成功するためには、そこがadvertiserとなっている必要があるので、それができていないのかも?と思った。
|