我计划对AJAX和普通请求使用相同的模板(Jinja 2)。如果是AJAX请求,我将不使用extends
,而正常请求extends
将用于扩展基本模板。
我的问题是,如何区分普通和AJAX请求?有什么方法可以反省request
对象来确定传入请求是基于AJAX还是正常请求?
答案 0 :(得分:1)
使用request.is_xhr
检测是否使用XMLHttpRequest对象(AJAX)发出请求:
如果请求是通过JavaScript XMLHttpRequest 触发的,则True 。这仅适用于支持
X-Requested-With
标头的库并将其设置为 XMLHttpRequest 。这样做的库是原型,jQuery和Mochikit,可能还有更多。
示例:
{% if not request.is_xhr %}
{% extends "base.html" %}
{% endif %}
或
{% extends "base.html" if not request.is_xhr else "ajax.html" %}