2011-12-11 4 views
0

내 장고 응용 프로그램에서 클라이언트가 사용중인 브라우저에 AJAX가 있는지 여부를 알고 싶습니다. 예를 들어 프로파일 편집이 있기 때문입니다. 사용자 프로필을 편집하는 버전과 편집 페이지로 리디렉션하는 버전이 있습니다.브라우저에 AJAX (Django)가 있는지 확인하는 방법

요즘 대부분의 브라우저에는 AJAX가 있지만 그걸 확인하려면 어떻게 장고 응용 프로그램에서 확인할 수 있습니까? 브라우저 지원 AJAX, 브라우저의 기능을 알 필요하면 당신이 알고 싶은 경우에

답변

1

나는 올바른 일이

같은이있을 것보기에 장고의 request.is_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/) 
+0

고맙습니다! 모든 대안 중에서 이것은 가장 실행 가능한 옵션처럼 보입니다. –

1

사용자 에이전트 등이 최적의 솔루션으로 간주되지 않는다 ... 당신이 그것을 감당할 수 있다면 오히려 클라이언트 측에서 hasjs와 같은 프로젝트를 사용하여 사용자의 브라우저가 실제로 가능한지 확인하고 어떻게 든 서버에 정보를 보냅니다 (세션이 없을 때 검사 페이지를 제공하고 검사 결과를 서버에 게시 한 다음 세션을 생성하고 해당 세션 또는 비슷한 기능을 기억합니다.

0

나는 이것을 할 방법을 찾지 못 했으므로, 내가 할 수있는 일은 자바 스크립트가없는 버전과 내 템플릿의 JavaScript 버전을 준비하는 것입니다.

.js 파일을로드하고 다른 페이지의 모든 링크를 AJAX 링크로 바꿉니다. 따라서 사용자가 자바 스크립트를 가지고 있지 않으면 모든 원래의 링크와 기능을 볼 수 있으며, 자바 스크립트가 있다면 그는 모든 AJAX 기능을 볼 수 있습니다.

관련 문제