お忙しいところ恐れ入ります。
fetch メソッドの第2引数 options
に指定してあるオブジェクトの body
プロパティに
URLSearchParams を使用されています。
fetch('?action=toggle', {
method: 'POST',
body: new URLSearchParams({ //注目箇所
id: checkbox.dataset.id,
token: checkbox.dataset.token,
}),
});
URLSearchParams を調べたところ、
引数にオブジェクト形式で値を指定すると、それを元にクエリ文字列を生成するということでした。
ここから質問なのですが、
クエリ文字列を生成する必要があるのですか?
GET 形式で送信された場合クエリ文字列が URL に付加されるため必要なのはわかるのですが、
POST 形式で受け取る場合クエリ文字列は関係ないのではないでしょうか?
例えば token
の場合、
Token.php
ファイルの validate
メソッド内に filter_input
メソッドで POST 型で token
を取得しています。
public static function validate()
{
if (
empty($_SESSION['token']) ||
$_SESSION['token'] !== filter_input(INPUT_POST, 'token') //該当箇所
) {
exit('Invalid post request');
}
}
body
プロパティに URLSearchParams インスタンスを使用せず、
単なるオブジェクトリテラルを使用して id
と token
を渡すことはだめなのでしょうか?
body: {
id: '任意のid値',
token: ’任意のトークン値’
}
よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?