user1034697
user1034697

Reputation:

How to know if browser has AJAX (Django)

In my Django application I would like to know if the browser the client is using has AJAX or not. This is because I have, for example, profile editing. I have a version that edits the user's profile in-place and another one that redirects you to an edit page.

I know that most browsers have AJAX nowadays, but just to make sure, how can I check that in a Django application?

Upvotes: 0

Views: 494

Answers (4)

armonge
armonge

Reputation: 3138

I believe that the correct thing would be to use some sort of graceful degradation and check for ajax in the request using Django's request.is_ajax() method

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

In your view there would be something like

if form.is_valid():
    if request.is_ajax():
        return simplejson.dumps(something)
    return redirect('/some-url/)

Upvotes: 1

user1034697
user1034697

Reputation:

I haven't foun a way to do this, therefore what I could do was prepare a JavaScript-free version and a JavaScript version of my template.

I load a .js file, and it replaces all the links to other pages with AJAX links. Therefore, if the user doesn't have JavaScript he will see all the original links and functionality, and if he has JavaScript he will see all AJAX functionality.

Upvotes: 0

user1046334
user1046334

Reputation:

User agent sniffing and the like is not seen as the best solution... if you can afford that, rather use projects like hasjs on client side to check what the user's browser really is capable and send the information to the server somehow (like, serving the checking page when there is no session, let it do the checks and post the results to the server, which then creates a session and remember the capabilities for that session or the something similar).

Upvotes: 1

Goin
Goin

Reputation: 3974

If you want know if a browser support AJAX, you need know the capabilities of the browser, you need this project:

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

Upvotes: 0

Related Questions