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

如何在浏览器控制台向Discord Webhook发消息?遇400错误求助

解决Discord Webhook POST 400(Invalid request origin/代码50067)问题

错误原因

这个错误是Discord的安全限制导致的:Discord Webhook不允许从浏览器环境(包括控制台)直接发起请求。浏览器会自动携带当前页面的Origin请求头,而Discord的Webhook接口会验证这个来源,拒绝非可信的浏览器端请求,以此防止Webhook链接被泄露后遭恶意滥用。

可行解决方案

1. 后端代理中转(推荐)

写一个简单的后端服务,由后端调用Discord Webhook,前端控制台请求自己的后端接口,绕过浏览器的Origin限制。

Node.js(Express)示例

const express = require('express');
const fetch = require('node-fetch');
const app = express();
app.use(express.json());

// 自定义接口,用于接收前端请求并转发到Discord
app.post('/send-discord', async (req, res) => {
  try {
    const webhookUrl = '你的Discord Webhook完整链接';
    const response = await fetch(webhookUrl, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify(req.body)
    });
    
    if (response.ok) {
      res.status(200).send('消息发送成功');
    } else {
      res.status(response.status).send('Discord返回错误');
    }
  } catch (error) {
    res.status(500).send('服务端请求失败:' + error.message);
  }
});

app.listen(3000, () => {
  console.log('代理服务运行在 http://localhost:3000');
});

然后在浏览器控制台请求这个代理接口:

fetch('http://localhost:3000/send-discord', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ content: '测试消息内容' })
})
.then(res => res.text())
.then(console.log);

2. 使用非浏览器工具直接测试

如果只是临时测试Webhook可用性,可以用命令行工具或API调试工具:

  • curl命令:
curl -H "Content-Type: application/json" -d '{"content":"测试消息"}' https://discord.com/api/webhooks/[你的ID/TOKEN]
  • Postman/Thunder Client:直接新建POST请求,设置Content-Type: application/json,请求体填{"content":"测试消息"},发送到Webhook链接即可。

重要提醒

绝对不要在前端代码(包括控制台公开输入)中直接暴露Discord Webhook链接,一旦泄露,任何人都可以用它向你的频道发送垃圾消息,必须通过后端中转来隐藏链接。

内容的提问来源于stack exchange,提问作者power house 222

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:42:05