Falcon CORS 中间件无法正常工作

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

Ale*_*ice 6

您的代码与 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 头指示跨站点访问请求或预检请求的来源。