如何确定它是否是Flask中的AJAX请求

时间:2014-10-28 20:41:24

标签: ajax flask jinja2

我计划对AJAX和普通请求使用相同的模板(Jinja 2)。如果是AJAX请求,我将不使用extends,而正常请求extends将用于扩展基本模板。

我的问题是,如何区分普通和AJAX请求?有什么方法可以反省request对象来确定传入请求是基于AJAX还是正常请求?

1 个答案:

答案 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" %}