如何知道浏览器是否具有AJAX(Django)

时间:2011-12-11 23:38:13

标签: python ajax django

在我的Django应用程序中,我想知道客户端使用的浏览器是否具有AJAX。这是因为我有例如个人资料编辑。我有一个版本可以就地编辑用户的个人资料,另一个版本可以将您重定向到编辑页面。

我知道现在大多数浏览器都有AJAX,但为了确保,我如何在Django应用程序中检查它?

4 个答案:

答案 0 :(得分:1)

用户代理嗅探等不被认为是最好的解决方案...如果你能负担得起,而是在客户端使用像hasjs这样的项目来检查用户的浏览器真正的功能,并以某种方式将信息发送到服务器(比如,在没有会话时提供检查页面,让它进行检查并将结果发布到服务器,然后服务器创建会话并记住该会话的功能或类似的东西)。

答案 1 :(得分:1)

我相信正确的方法是使用某种优雅的降级并使用Django的request.is_ajax()方法检查请求中的ajax

https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.is_ajax

在你看来会有像

这样的东西
if form.is_valid():
    if request.is_ajax():
        return simplejson.dumps(something)
    return redirect('/some-url/)

答案 2 :(得分:0)

如果你想知道浏览器是否支持AJAX,你需要知道浏览器的功能,你需要这个项目:

https://github.com/clement/django-wurfl/

答案 3 :(得分:0)

我还没有办法做到这一点,因此我能做的就是准备一个免费的JavaScript版本和我的模板的JavaScript版本。

我加载了一个.js文件,它用AJAX链接替换了其他页面的所有链接。因此,如果用户没有JavaScript,他将看到所有原始链接和功能,如果他有JavaScript,他将看到所有AJAX功能。