在Python Pylons中检测ajax与常规浏览器帖子

时间:2010-05-10 08:02:06

标签: python post pylons

如何检测表单是通过AJAX帖子提交还是仅通过Pylons中的浏览器提交?

例如:

if 'name' in request.POST:
    #Do something

如果'name'是通过ajax或普通帖子提交的,那将是真的。我该如何区分?

谢谢。

3 个答案:

答案 0 :(得分:5)

您可以使用request.is_xhr。 这依赖于你的javascript框架来设置X-Requested-With: XMLHttpRequest标头,但这并不错,因为像jquery这样的大多数框架都添加了这个标题。

答案 1 :(得分:1)

我检查请求标题中的接受json

def controller_accepts_json():
    return 'application/json' in request.headers.get('accept', '')

答案 2 :(得分:0)

这可能会有所帮助。

import os

os.environ.has_key('HTTP_X_REQUESTED_WITH')