HX-Redirect
此 HTTP 响应头可用于触发客户端重定向到新的 URL,从而完全重新加载整个页面。它使用浏览器重定向到新位置,这在重定向到可能包含不同的 HTML 头内容或脚本的非 htmx 端点时非常有用。
想要更好地控制重定向或想要使用 ajax 请求而不是完全重新加载浏览器,请参阅 HX-Location 。
3xx 响应代码不会处理响应标头。请参阅 响应头
基本语法
HX-Redirect: /test
这将促使客户端请求 /test,就好像用户手动输入了此 URL 或点击了常规链接一样 <a href="/test">
示例代码
用户点击删除按钮,但未登录,则重定向到登录页:
HTML 前端代码:
<button hx-post="/delete-item/123"
hx-target="#messages"
hx-swap="innerHTML">删除</button>
后台代码(Python Flask):
@app.route("/delete-item/<id>", methods=["POST"])
def delete_item(id):
if not user_logged_in():
response = make_response("")
response.headers["HX-Redirect"] = "/login"
return response
# 执行删除逻辑
return "删除成功"