我写了一个Django视图,根据text/html
响应以application/json
或request.is_ajax()
。
到目前为止一切顺利,但是当我使用浏览器历史记录按钮时,我最终得到的是JSON响应,而不是HTML。
我无法弄清楚问题。这是真的,jQuery ajax请求在页面加载后得到相同的url,但这不应该在历史记录中结束,还是应该呢?
谢谢,乔
答案 0 :(得分:6)
如果您根据request.is_ajax()
发送不同的内容,则需要将Vary: X-Requested-With
发送到浏览器。这样,浏览器就能够根据请求中X-Requested-With
标头的值来区分这两种响应。你可以通过以下方式做到:
from django.views.decorators.vary import vary_on_headers
@vary_on_headers('X-Requested-With')
def yourview(request, ...):
pass