2012-11-25 7 views
0

je ne peux pas comprendre pourquoi mon avis retourne false pour request.is_ajax est ici le code correspondant
dans views.pydjango request.is_ajax renvoie false

def ajax_test(request): 
    if request.is_ajax(): 
     message = "This is an Ajax message" 
    else: 
     message = "Ajax error" 
    return render_to_response("ajax.html", 
     context_instance=RequestContext(request,{'message':message})) 

dans ajax.html

$(document).ready(function(){ 

     $('#click_me').bind('click',function(){ 

      $.get('#'); 

     }); 

    }); 

J'ai une variable de template {{ message }} qui est supposée être mise à jour pour "Ceci est un message Ajax" quand je clique sur le lien click_me. Mais ce n'est pas le cas. J'ai lu toutes les questions pertinentes ici, mais je n'arrive pas à comprendre ce qui ne va pas. merci

+0

Utilisez des outils de développement pour vous assurer que la demande est envoyée avec l'en-tête '' HTTP_X_REQUESTED_WITH' contenant 'XMLHttpRequest'' – Ohad

+0

vous dites « Mais ce ne se passe pas ". Qu'est-ce qui se passe? Voyez-vous le texte "erreur Ajax"? – second

+0

J'ai vérifié les en-têtes Http dans firefox (plugin LiveHttpheaders installé) et je peux voir l'en-tête X-Requested-with est défini sur 'XMLHttprequest'; et oui je vois toujours "erreur Ajax", merci – Ananth

Répondre

0

Peut-être que la requête ajax reçoit une réponse de redirection 3xx, et l'en-tête X-Requested-with est parti?

On ne sait pas ce que fait $.get('#').

C'est une erreur courante.

0

je ne sais pas si je peux répondre à ma propre question, mais il a obtenu résolu, et oui, je n'ai pas une idée, ce que le .get de $ (« n ») le fait, je viens d'essayer de visitez la même URL en le faisant, voici comment cela a fonctionné

$(document).ready(function(){ 
     $('#click_me').bind('click',function(){ 
      $('#insert_here').load("/ajax_test/ #insert_here"); 
      return false; 
     }); 

et le code html correspondant (je suis désolé, je rallye ne sais pas comment inclure le code html dans cet éditeur) dans l'élément p il est {{ message }} avec l'identifiant 'insert_here' et un tag avec l'identifiant click_me et l'attribut href '/ ajax_test /', ainsi quand je visite l'url '/ ajax_test /' est un message Ajax ", si je n'utilise pas return false il renvoie "erreur Ajax". je n'ai pas vraiment une idée de ce que le retour faux fait, merci pour les réponses