Skip to main content
 首页 » 编程设计

Python Tornado之CORS PUT

2024年10月01日6lidabo

我遇到了 Tornado 的问题。我在 Tornado 中有一个用于 PUT HTTP 方法的 API 端点。我还有一个 Web 应用程序,它使用 jQuery 和 AJAX 向此 API 发送请求,但我总是收到 405 响应,因为请求是作为 HTTP 方法选项进行的。 我了解它的工作方式,并且我确实配置了我的 Tornado 服务器以允许它。但即使这样我也有这种情况。 有人可以帮助我吗?

有我的服务器代码:

class BaseHandler(RequestHandler): 
   def __init__(self, *args, **kwargs): 
        super(BaseHandler, self).__init__(*args, **kwargs) 
        self.set_header('Cache-Control', 'no-store, no-cache, must-   revalidate, max-age=0') 
        self.set_header("Access-Control-Allow-Origin", "*") 
        self.set_header("Access-Control-Allow-Headers", "Content-Type") 
        self.set_header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS') 

非常感谢

请您参考如下方法:

您需要添加一个 options 处理程序,它只发送没有正文的 header :

def options(self): 
    # no body 
    self.set_status(204) 
    self.finish() 

参见 Tornado server: enable CORS requests获取完整的代码片段。

否则只需安装 the tornado-cors package :

pip install tornado-cors 

这将为您添加必要的处理程序,并确保发送正确的响应 header 。