You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Discord官网控制台使用Webhook时出现POST 400错误

问题原因及解决办法

核心原因

  1. Discord内容安全策略(CSP)收紧:现在Discord官网页面的安全规则已经禁止在其页面环境内直接发起Webhook请求,以此防范恶意脚本滥用Webhook功能,这是导致请求被拦截返回400的主要原因。
  2. 自动携带的认证信息冲突:在Discord官网控制台运行代码时,浏览器会自动带上当前登录账号的Cookie等认证信息,但Webhook请求本身不需要用户认证,多余的认证头会被Discord API判定为非法请求。
  3. 旧域名兼容性问题:你代码里使用的discordapp.com是Discord的旧域名,虽然部分场景仍能使用,但官方现在推荐使用discord.com,旧域名可能存在隐性的兼容性问题。

解决办法

  • 放弃在Discord官网控制台运行:Webhook的设计初衷是供后端服务、本地脚本或非Discord环境调用,Discord的安全策略已经不允许在自身页面内执行这类请求,回到本地环境运行代码就能恢复正常。
  • 临时测试用的请求配置修改:如果非要在控制台测试,可以用fetch并配置不发送Cookie,避免认证信息冲突,代码示例:
async function sendMessage() {
  const webhookUrl = "https://discord.com/api/webhooks/你的真实WebhookID/你的真实Token";
  const params = {
    username: "My Webhook Name",
    avatar_url: "",
    content: "The message to send"
  };
  try {
    const response = await fetch(webhookUrl, {
      method: "POST",
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(params),
      credentials: 'omit' // 关键配置:不发送当前登录的Cookie
    });
    console.log(response.status);
  } catch (err) {
    console.error(err);
  }
}
sendMessage();
  • 替换为官方推荐域名:把代码里的discordapp.com替换成discord.com,消除旧域名的兼容性隐患。

内容的提问来源于stack exchange,提问作者BlueSchnabeltier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:25:18