3

我有一个在 Tornado Web 服务器上运行的 Flask 应用程序。我希望能够从客户端调用 OPTIONS。我承认我不是 100%,这是解决这个问题的最佳方式。我找到了这个,并将其放入我的烧瓶应用程序中。这适用于除OPTIONS. 当我将应用程序放在 Tornado 上时,我将其添加到我的 tornado 应用程序中:

class BaseHandler(tornado.web.RequestHandler):
    def set_default_headers(self):
        self.set_header("Access-Control-Allow-Origin", "*")
        self.set_header("Access-Control-Allow-Credentials", "true")
        self.set_header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS")
        self.set_header("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept")

这将为所有请求返回以下标头,除了OPTIONS

Access-Control-Allow-Headers:CONTENT-TYPE, AUTHORIZATION, ACCEPT
Access-Control-Allow-Methods:HEAD, GET, PUT, POST, OPTIONS, DELETE
Access-Control-Allow-Origin:*
Access-Control-Max-Age:21600
Content-Length:3493
Content-Type:text/html; charset=utf-8
Server:TornadoServer/3.1

OPTIONS只是返回:

Content-Type: text/html; charset=utf-8
Content-Length: 0
Allow: HEAD, GET, PUT, POST, OPTIONS, DELETE
Server: TornadoServer/3.1

将完整标题返回到需要OPTIONS什么?

4

1 回答 1

1

我最终退出了BaseHandler课程并设置provide_automatic_optionsFalse装饰器中,这很有效。

于 2013-07-17T19:51:12.790 回答