Нужно в headers прокинуть Authorization с определенным ключем. Если задавать заголовки напрямую через методы options и set_default_headers то все ок. Но в коде более 100 хендлеров и на каждый вешать свой options не комильфо.
Вот так работает
class LongPollingHandler(tornado.web.RequestHandler):
def set_default_headers(self):
self.set_header("Access-Control-Allow-Origin", "*")
def options(self, *args, **kwargs):
self.set_header("Access-Control-Allow-Headers", "*")
self.set_header('Access-Control-Allow-Methods', '*')
async def get(self):
pass
Но не работает если наследоваться через класс Mixin:
class BaseHandler(tornado.web.RequestHandler):
def set_default_headers(self):
self.set_header("Access-Control-Allow-Origin", "*")
def options(self, *args, **kwargs):
self.set_header("Access-Control-Allow-Headers", "*")
self.set_header('Access-Control-Allow-Methods', '*')
def prepare(self):
if db.is_closed():
db.connect()
return super(BaseHandler, self).prepare()
def on_finish(self):
if not db.is_closed():
db.close()
return super(BaseHandler, self).on_finish()
class LongPollingHandler(BaseHandler):
pass
Почему?