Den*_*yuk 6 python falcon cors
我正在使用Falcon CORS仅允许从多个域访问我的 Web 服务。但它不能正常工作。
让我解释一下,如果我们看一下我的实现:
ALLOWED_ORIGINS = ['*']
crossdomain_origin = CORS(allow_origins_list=[ALLOWED_ORIGINS], log_level='DEBUG')
app = falcon.API(middleware=[RequireJSON(), JSONTranslator(), cors.middleware])
Run Code Online (Sandbox Code Playgroud)
当我向 API 服务发出任何发布请求时,我收到以下警告:
由于来源不允许中止响应
但是,然后我从我的 API 得到了正确的响应。
这是关于这个模块的官方文档:https : //github.com/lwcolton/falcon-cors
您的代码与 falcon-cors 文档的示例不匹配:
import falcon
from falcon_cors import CORS
cors = CORS(allow_origins_list=['http://test.com:8080'])
api = falcon.API(middleware=[cors.middleware])
# ^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
注意cors.middleware变量被传递到 api 调用中。在您的代码中,您正在创建crossdomain_origin但未将其传递到 API 设置中。
如果这不能解决问题,请提供一个工作代码示例,包括 Falcon 资源类,它易于测试和重现,我很乐意尝试提供帮助。
编辑:
从下面的评论中,听起来 falcon-cors 工作正常,而问题可能是origin请求中省略了标头。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
Origin 头指示跨站点访问请求或预检请求的来源。