| |
| import json |
| import tornado.web |
|
|
|
|
| |
| class ApiHandler(tornado.web.RequestHandler): |
| def __init__(self, *args, **kwargs): |
| super().__init__(*args, **kwargs) |
| self.json_args = None |
|
|
| def set_default_headers(self): |
| |
| if not self.application.settings['debug']: |
| return |
| self.set_header('Access-Control-Allow-Origin', '*') |
| self.set_header('Access-Control-Allow-Methods', 'OPTIONS, PUT, POST, GET, DELETE') |
| if 'Access-Control-Request-Headers' in self.request.headers: |
| self.set_header('Access-Control-Allow-Headers', |
| self.request.headers['Access-Control-Allow-Headers']) |
|
|
| def prepare(self): |
| if not self.request.headers.get('Content-Type', '').startswith('application/json'): |
| return |
| try: |
| self.json_args = json.loads(self.request.body) |
| except json.JSONDecodeError: |
| pass |
|
|
| async def options(self, *_args, **_kwargs): |
| |
| self.set_status(204 if self.application.settings['debug'] else 405) |
|
|