5

我有一个处理程序不起作用,但它应该与 ajax 需要方向一起使用。

样本:

from tornado.web import RequestHandler

class MyHandler(RequestHandler):

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

如果不是 MyHandler == Ajax 请求,那么 Redirect "/" ??

谢谢你...

4

2 回答 2

2

所以; 您可以使用的装饰器。创造

装饰器.py

添加 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 

from tornado.web import RequestHandler
from decorators import is_ajax


class MyHandler(RequestHandler):

    @is_ajax # is_ajax decorators.
    def get(self):
        self.write("ok!")
于 2012-11-16T16:53:19.457 回答
1

看看这个:这个应该更容易理解:

https://github.com/zhanglongqi/TornadoAJAXSample

于 2015-04-08T13:52:10.200 回答