事件 - htmx:sendError
htmx:sendError 是 HTMX 在发起请求(如 GET、POST 等)时,如果请求发送失败(网络错误、请求被阻止、权限问题等),会触发的一个事件。
事件参数
- detail.xhr - XMLHttpRequest
- detail.elt - 触发请求的元素
- detail.target - 请求的目标
- detail.requestConfig - AJAX请求的配置
常见的发生原因
场景 |
描述 |
网络中断 |
客户端断网时请求失败 |
CORS 跨域问题 |
请求被浏览器拦截 |
请求被浏览器拒绝 |
比如某些扩展阻止 |
JS 异常 |
beforeRequest 钩子中抛出异常 |
示例代码
<button
hx-get="https://api.example.com/protected-data"
hx-target="#result"
hx-swap="innerHTML">
请求数据
</button>
<div id="result"></div>
<script>
document.body.addEventListener("htmx:sendError", function(evt) {
console.error("请求发送失败!");
alert("请求失败,请检查网络或联系管理员。");
console.log("失败的元素:", evt.detail.elt);
console.log("异常信息:", evt.detail.error);
});
</script>
与其它错误事件的对比
事件名 |
说明 |
htmx:sendError |
请求 未能发送 |
htmx:responseError |
请求已发送,服务器返回错误状态码(如 500) |
htmx:swapError |
内容插入失败 |
htmx:targetError |
找不到插入目标元素 |