fetch API で POST したらエラー
4684 ワード
Nest.jsで作ったAPIをReactからfetchしようとした時にエラーが出たので、その解決方法をメモします。
エラーの原因の結論は、データがうまく渡せていなかったからです。空で渡っていました。
エラー内容
実行したのは大体こんな感じです
App.tsx
async function addTodo() {
const body = JSON.stringify({todo:todo,limit:limit})
await fetch('http://localhost:3000/item',{
method: 'POST',
mode: 'cors',
body: body,
})
.then(() =>{
// 省略
})
}
POSTでfetchしたらエラーが出ました。
POST http://localhost:3000/item 400 (Bad Request)
原因
エラー内容をしっかりと見ていってわかったこと。
- データが渡せていない(サーバー側で確認したら、空の配列になっていた)
- サーバー側で「not null」のバリデーションを付けているため、空のデータに対してエラー
解決方法
ヘッダーにContent-Typeを指定して、Jsonであることを伝える事で解決
App.tsx
async function addTodo() {
const body = JSON.stringify({todo:todo,limit:limit})
await fetch('http://localhost:3000/item',{
method: 'POST',
mode: 'cors',
body: body,
// =====↓追加====
headers:{'Content-Type': 'application/json'}
// =====↑追加====
})
.then(() =>{
// 省略
})
}
これで、データをサーバー側で受け取ることができました。
無事、エラーがなくなりました。
参考文献
Author And Source
この問題について(fetch API で POST したらエラー), 我々は、より多くの情報をここで見つけました https://qiita.com/toki_k/items/858892dab03e8ef9078c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .