2012-11-16 4 views
5

Ich habe einen Handler funktioniert nicht, aber es sollte mit Ajax müssen Orientierung brauchen.Wie man Ajax Anfrage Handler Tornado

Beispiel:

from tornado.web import RequestHandler 

class MyHandler(RequestHandler): 

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

wenn nicht MyHandler == Ajax-Request dann umleiten "/" ??

danke ...

+0

vielleicht Ihre XSRF_COOKIES Ursache Einstellung dieses Problem – pigletfly

Antwort

2

so; Dekorateur können Sie verwenden. erstellen

decorators.py

hinzufügen is_ajax Funktion;

# 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 

und

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

Warum 'nicht' wenn Selbst .request.headers.get ('X-Requested-With') == "XMLHttpRequest": '' weniger Treffer im Wörterbuch. – koblas

Verwandte Themen