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

如何向Discord Webhook发送请求?现有代码报错求修复

修复Discord Webhook输入长度为0的错误

你的代码核心问题是页面加载时就提前获取了输入框的值,此时输入框是空的,之后用户输入内容后,webhook变量并不会自动更新,所以点击按钮时始终判断为空。

修复后的代码

var webhookInput = document.getElementById('webhookInput');
var webhookButton = document.getElementById('webhookBtn');

async function webhookRequest() {
    const webhook = webhookInput.value.trim(); // 每次调用时获取最新输入并去除首尾空格
    try {
        // Discord Webhook验证需要发送POST请求(带空内容),GET请求会返回405
        const response = await fetch(webhook, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({ content: '' })
        });

        if (response.ok) { // 用response.ok判断更准确,覆盖200-299状态码
            console.log('webhook valid');
            localStorage.setItem('webhook', webhook);
            alert('Webhook验证成功!');
        } else {
            alert('请确保你的Webhook链接有效。');
        }
    } catch (err) {
        console.error(err);
        alert('请求出错,请检查网络或Webhook链接。');
    }
}

webhookButton.addEventListener('click', function() {
    const webhook = webhookInput.value.trim();
    if (webhook.length > 0) {
        webhookRequest();
    } else {
        alert('请输入Webhook链接。');
    }
});

关键修改点

  • 实时获取输入值:把webhook = webhookInput.value移到点击事件和请求函数内部,确保每次操作都获取用户最新输入的内容,同时用trim()去除首尾空格,避免空字符误判。
  • 修正请求方式:Discord Webhook不支持GET请求验证,必须发送POST请求(即使内容为空),否则会返回405错误,所以添加了method: 'POST'和对应的请求头、空内容体。
  • 优化状态判断:用response.ok替代硬编码的200,能正确处理所有成功状态码(200-299)。
  • 完善错误提示:给catch块添加用户可见的错误提示,同时在控制台输出详细错误信息便于调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:54:19