Ajaxでサーバーサイドにデータを送る

fetch('/', {
    method: 'POST',
    headers: {
        'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').getAttribute('content'),
        'Accept': 'application/json',
        'X-Requested-With': 'XMLHttpRequest'
    },
    body: {name: 'test'}
})
.then(response => {
    if (response.ok) {
        return response.json();
    } else {
        throw new Error("通信に失敗しました。");
    }
})
.then(data => {
    console.log(data);
})
.catch(error => {
    console.error('エラー:', error);
});
上の例は、自分のドメインのルートにPOSTメソッドで{name: 'test'}のjson型のデータを送っている例です。

fetch('データを送るURL', {
method: 'データを送るメソッド',
headers: {
ヘッダーの内容
},
body: データを送る内容をjson形式で記入
})

のように記入します。
サーバーサイドから返ってきたデータに対して処理を行うときは
.then(サーバーサイドから受け取った値を代入する変数 => {
処理
})
.catch( サーバーサイドからのエラーメッセージを代入する変数 => {
エラー時の処理
})

の形式で記入します。
.thenは複数つなげて記入することもできます。

上の例では、1度目のthenで
.then(response => {
if (response.ok) {
return response.json();
} else {
throw new Error("通信に失敗しました。");
}
})

とし、サーバーサイドから正しくデータが返ってきたときにreturn response.json()でサーバーサイドから受け取った値をjson形式にしています。

次のthenでは引数をdataにし、コンソールログに出力しています。
ここでのdataには前のthenでの戻り値であるresponse.json()が代入されています。