龙卷风/Tornado和Flask对OPTIONS请求没有正确响应

3
我有一个运行在Tornado web服务器上的Flask应用程序。我想要客户端能够调用OPTIONS。我承认我并不完全知道最好的方法是什么。我找到了这个,并将其放入我的Flask应用程序中。这适用于除了 OPTIONS 之外的所有请求的开发服务器(仅限Flask)。当我将应用程序设置为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请求中返回完整的头部信息?

1个回答

1

最终我移除了BaseHandler类,并在装饰器中将provide_automatic_options设置为False,这样就解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接