hx-request

hx-request 是 HTMX 提供的一个用于微调请求行为的高级属性,它通过一个特殊的字符串格式,控制请求时的一些细节设置。

hx-request是合并继承的,可以放置在父元素上

常见选项列表(多个选项用逗号分隔)

选项名 作用说明
no-headers 不发送 HTMX 自动附带的请求头(如 HX-Request, HX-Target, 等)
no-cache 禁用缓存(即使浏览器可缓存也强制请求)
credentials:include 发送请求时强制附带 cookies,跨域时使用
with-credentials 与上类似,发送 withCredentials 请求(即使跨域)
timeout:VALUE 设置超时毫秒数(如 timeout:5000 表示 5 秒)
values:jsVarName 将一个 JS 对象中的键值作为 HTMX 请求参数发送(即附加 form data)
encoding:json 以 JSON 格式发送数据(需配合 hx-valshx-include
no-script 阻止 HTMX 自动执行响应中的 <script> 标签
no-form 忽略表单中内容(即使按钮在 <form> 中)

这些属性使用类似 JSON 的语法进行设置:

<div ... hx-request='{"timeout":100}'>
  ...
</div>

你可以通过添加 javascript: 或 js: 前缀来动态解析值:

<div ... hx-request='js: timeout:getTimeoutSetting() '>
  ...
</div>

示例 1:禁用 HTMX headers

<button hx-get="/example" hx-request="no-headers">请求无 HTMX 头</button>

示例 2:设置请求超时

<button hx-get="/slow-api" hx-request="timeout:3000">3 秒超时</button>