事件 - htmx:noSSESourceError

htmx:noSSESourceError 是 HTMX 的一个错误事件,在你使用了 SSE(Server-Sent Events)扩展时,如果无法建立事件连接(没有有效的 sse-connect 源),就会触发这个事件。

这通常是由在使用 <div sse-swap="..."> 时 忘记设置或设置了无效的 sse-connect 连接地址。

事件参数

  • detail.elt - 具有不良 SSE 触发器的元素

例如

<!-- 错误:缺少 sse-connect 属性 -->
<div sse-swap="message">
  等待接收服务器消息...
</div>

以上的代码就会因为没有配置 sse-connetc 属性从而触发 htmx:noSSESourceError 事件。

示例代码

<script>
  document.body.addEventListener("htmx:noSSESourceError", function(evt) {
    console.error("SSE 错误:未指定 sse-connect 源");
    alert("页面配置错误:缺少 SSE 源地址");
  });
</script>

问题排查建议

当发生 htmx:noSSESourceError 事件时,建议由以下几方面排查代码:

  1. 是否正确加载了 htmx-ext-sse.js

  2. 是否为使用 sse-swap 的元素设置了非空、有效的 sse-connect 属性

  3. SSE 服务是否响应正确(Content-Type: text/event-stream)