fetch apiを使おうとして躓いたのでメモ
##問題
createItems() {
var opt = {
"method": "POST",
"headers": {"Content-Type": "application/json"},
"body": {
"title": "テストタイトル",
"content": "テストコンテンツ"
}
}
fetch("/create", JSON.stringify(opt))
.then((res) => res.json())
.then((res) => alert("ok"))
.catch((err) => alert(err));
}
TypeError: Failed to execute 'fetch' on 'Window': parameter 2 ('init') is not an object.
##解決方法
"init"はfetch関数の第2引数のことである。
見ると引数の値がobjectではなくstringになっていた。
なので正しい書き方は
fetch("/create", opt)
である。Content-Typeがjsonなのでoptもjsonにしなければいけないと勘違いしていたことが原因。