2012-11-16 4 views
5

J'ai un gestionnaire ne fonctionne pas, mais il devrait fonctionner avec une orientation ajax besoin.Comment faire pour gérer ajax request handler tornado

échantillon:

from tornado.web import RequestHandler 

class MyHandler(RequestHandler): 

    def get(self): 
     self.write("ok!") 

sinon MyHandler == demande Ajax puis redirect "/" ??

merci ...

+0

peut-être votre XSRF_COOKIES mise en cause de ce problème – pigletfly

Répondre

2

ainsi; Décorateur vous pouvez utiliser. créer

decorators.py

ajouter la fonction is_ajax;

# decorators.py 
def is_ajax(method): 

    @wraps(method) 
    def wrapper(self, *args, **kwargs): 
     if "X-Requested-With" in self.request.headers: 
      if self.request.headers['X-Requested-With'] == "XMLHttpRequest": 
       return method(self, *args, **kwargs) 

     else:                                         
      self.redirect("/")              

    return wrapper 

et

from tornado.web import RequestHandler 
from decorators import is_ajax 


class MyHandler(RequestHandler): 

    @is_ajax # is_ajax decorators. 
    def get(self): 
     self.write("ok!") 
+1

Pourquoi ne pas '' si l'auto .request.headers.get ('X-Requested-With') == "XMLHttpRequest": "moins de hits sur le dictionnaire. – koblas