HX-Push-Url 响应头

HX-Push-Url 头允许你将 URL 推送到浏览器位置历史记录中。这会创建一个新的历史记录条目,允许使用浏览器的后退和前进按钮进行导航。这类似于 hx-push-url属性

如果存在,此 HTTP 头将覆盖用属性定义的任何行为。

此 HTTP 头的可能值为:

  1. 要推送到地址栏的 URL。这可以是相对的,也可以是绝对的,根据 history.pushState() 而定。
  2. false,这会阻止浏览器的历史记录更新。

与 hx-push-url 属性不同的是,hx-push-url 属性是在客户端控制,而 HX-Push-Url 响应头是由服务器控制并返回的。在服务器进行控制的好处是更灵活、更安全,可以根据当前内容的敏感程度决定是否允许当前页面内容缓存至浏览器历史中。

3xx 响应代码不会处理响应标头。请参阅 响应头

用法

Hx-Push-Url = "/url"

示例代码

以 Python Flask 框架作为服务端为例:

from flask import Flask, make_response

app = Flask(__name__)

@app.route('/example')
def example():
    response = make_response("Hello, World!")
    response.headers['Hx-Push-Url'] = '/example'
    return response

if __name__ == '__main__':
    app.run(debug=True)

以上代码通过响应头 HX-Push-Url 通知 htmx 把 /example 推入到浏览器历史。