×
サイバー攻撃について
async function updateProfile(payload) {
    const csrfToken = getCookie("csrftoken");

    if (!csrfToken) {
        throw new Error("CSRFトークンを取得できませんでした。");
    }

    const response = await fetch("/api/profile/", {
        method: "POST",
        credentials: "same-origin",
        headers: {
            "Content-Type": "application/json",
            "X-CSRFToken": csrfToken,
        },
        body: JSON.stringify(payload),
    });

    if (!response.ok) {
        const message = await response.text();
        throw new Error(
            `更新に失敗しました: ${response.status} ${message}`
        );
    }

    return response.json();
}

同一オリジンAPIでは、原則としてcredentials: "same-origin"を使います。

外部OriginとのCookie共有が本当に必要な場合だけincludeを検討します。