HTMX hx-request属性(credentials、noHeaders)正确语法咨询
正确使用HTMX的hx-request属性语法
hx-request需要接收JSON格式的配置对象,属性名需严格匹配HTMX规范,且语法要准确(注意引号、逗号的使用)。针对你关注的credentials和noHeaders选项,以下是正确写法及说明:
1. 控制请求凭据(credentials)
credentials的取值为字符串类型,可选值包括:
"include":携带所有凭据(如Cookie),跨域请求也生效"same-origin":仅同源请求携带凭据(默认值)"omit":不携带任何凭据
示例代码:
<div id="user_entry_1a_slot" hx-get="{% url 'user_entry_1b' %}" hx-trigger="keyup" hx-target="#user_entry_1b_slot" hx-include="this" hx-request='{"credentials": "include"}'> <p>Enter a three character alphanumeric identifier: <input type="text" size="3" maxlength="3" name="ti_threecharid"></input> </p> </div> <div id="user_entry_1b_slot"> </div>
2. 禁用HTMX默认请求头(noHeaders)
noHeaders是布尔值,设置为true会移除HTMX自动添加的请求头(如HX-Request、HX-Trigger等),但不会删除浏览器自带的头(如User-Agent、Cookie)。
示例代码:
<div id="user_entry_1a_slot" hx-get="{% url 'user_entry_1b' %}" hx-trigger="keyup" hx-target="#user_entry_1b_slot" hx-include="this" hx-request='{"noHeaders": true}'> <p>Enter a three character alphanumeric identifier: <input type="text" size="3" maxlength="3" name="ti_threecharid"></input> </p> </div> <div id="user_entry_1b_slot"> </div>
同时配置两个选项
若需同时设置credentials和noHeaders,注意JSON对象的逗号分隔语法:
hx-request='{"credentials": "omit", "noHeaders": true}'
常见错误排查
- 必须用单引号包裹整个JSON配置,内部属性名和字符串值用双引号,避免与HTML属性的引号冲突
- 检查属性名拼写:
credentials(复数)、noHeaders(驼峰命名),不要写错 credentials不能用布尔值true/false,必须使用指定的字符串值
内容的提问来源于stack exchange,提问作者JDM
相关产品推荐
相关产品推荐

