事件 - htmx:validateUrl

此事件在发出请求之前触发,允许你验证 htmx 将要请求的 URL。这个事件是 在请求发送之前、构造 URL 阶段触发的。如果 preventDefault() 在事件上调用,则不会发出请求。

事件参数

  • detail.elt - 触发请求的元素
  • detail.url - 表示请求将发送到的 URL 的 URL 对象。
  • detail.sameHost - 如果请求与当前页面位于同一主机则为 true

示例代码

document.body.addEventListener('htmx:validateUrl', function (evt) {
  // only allow requests to the current server as well as myserver.com
  if (!evt.detail.sameHost && evt.detail.url.hostname !== "myserver.com") {
    evt.preventDefault();
  }
});

htmx:validateUrl 事件发生在 htmx:beforeRequest 事件之前。该事件不会向服务器发起请求,仅仅是本地的一个事件钩子,允许你在 beforeRequest 的前面做一些发起请求的准备或者做一些预校验。

例如:在全局层面禁止发起跨站请求、又或者拦截带恶意代码的 URL 等。