htmx and django: return HX-Trigger header with json data show error `SyntaxError: JSON.parse...`
htmx and django: return HX-Trigger header with json data show error `SyntaxError: JSON.parse...`
我正在按照 https://htmx.org/headers/hx-trigger/
中的示例进行操作
我的看法
def my_view(request):
res = render(request, 'index.html')
res.headers["HX-Trigger"] = ...
return res
此代码有效
res.headers["HX-Trigger"] = "showMessage"
而下面的代码会导致错误 SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data
res.headers["HX-Trigger"] = {"showMessage": "Here Is A Message"}
我该怎么办?
您需要传递一个有效的 JSON 字符串作为 header - 而不是字典,因为字典不会自动转换为 JSON (这就是客户端失败的原因解析它)。
以下将起作用:
res.headers["HX-Trigger"] = '{"showMessage": "Here Is A Message"}' # Note, this is a string
或者,如果您不想手动生成 JSON 字符串:
import json
res.headers["HX-Trigger"] = json.dumps({"showMessage": "Here Is A Message"})
我正在按照 https://htmx.org/headers/hx-trigger/
中的示例进行操作我的看法
def my_view(request):
res = render(request, 'index.html')
res.headers["HX-Trigger"] = ...
return res
此代码有效
res.headers["HX-Trigger"] = "showMessage"
而下面的代码会导致错误 SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data
res.headers["HX-Trigger"] = {"showMessage": "Here Is A Message"}
我该怎么办?
您需要传递一个有效的 JSON 字符串作为 header - 而不是字典,因为字典不会自动转换为 JSON (这就是客户端失败的原因解析它)。
以下将起作用:
res.headers["HX-Trigger"] = '{"showMessage": "Here Is A Message"}' # Note, this is a string
或者,如果您不想手动生成 JSON 字符串:
import json
res.headers["HX-Trigger"] = json.dumps({"showMessage": "Here Is A Message"})