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-vals 或 hx-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>