在我的Django应用程序中,我想知道客户端使用的浏览器是否具有AJAX。这是因为我有例如个人资料编辑。我有一个版本可以就地编辑用户的个人资料,另一个版本可以将您重定向到编辑页面。
我知道现在大多数浏览器都有AJAX,但为了确保,我如何在Django应用程序中检查它?
答案 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,你需要知道浏览器的功能,你需要这个项目:
答案 3 :(得分:0)
我还没有办法做到这一点,因此我能做的就是准备一个免费的JavaScript版本和我的模板的JavaScript版本。
我加载了一个.js文件,它用AJAX链接替换了其他页面的所有链接。因此,如果用户没有JavaScript,他将看到所有原始链接和功能,如果他有JavaScript,他将看到所有AJAX功能。