Python 3.x Flask cors未按配置拒绝来源

Python 3.x Flask cors未按配置拒绝来源,python-3.x,flask,flask-restplus,flask-cors,Python 3.x,Flask,Flask Restplus,Flask Cors,我尝试将flask cors(3.0.8)与flask restplus(0.13.0)结合使用,允许一些来源,拒绝其他来源,但cors不拒绝任何跨来源请求 我的架构使用3个文件来初始化我的应用程序: 1。app/\uuu init\uuuu py(声明我的蓝图) 2。app/main/\uuuuu init\uuuuuu.py(使用我的创建应用程序功能,使用CORS) 3。manage.py(包含我的主流程) 此方法用于初始化我的应用程序,但我的API允许来自所有域的所有请求,而不是仅允许来自

我尝试将flask cors(3.0.8)与flask restplus(0.13.0)结合使用,允许一些来源,拒绝其他来源,但cors不拒绝任何跨来源请求

我的架构使用3个文件来初始化我的应用程序:

1。app/\uuu init\uuuu py(声明我的蓝图)

2。app/main/\uuuuu init\uuuuuu.py(使用我的创建应用程序功能,使用CORS)

3。manage.py(包含我的主流程)

此方法用于初始化我的应用程序,但我的API允许来自所有域的所有请求,而不是仅允许来自something.my-domain.com的请求(如配置所示)


有人已经有这个问题了?

我认为您没有使用应用程序工厂模式正确初始化扩展

在app/main/_init__.py中,尝试:

完整示例:

使用以下内容:

cors.init_app(app,resources={r“*”:{“origins”:“*”})

虽然此代码可以回答问题,但提供有关此代码回答问题的原因和/或方式的其他上下文可以提高其长期价值。
from flask_restplus import Api
from flask import Blueprint
...

BLUEPRINT = Blueprint("api", __name__)
API = Api(BLUEPRINT)
...
...

def create_app()
  app = Flask(__name__)

  CORS(app, resources={r"/*": {"origins": r".*\.mydomain.com"}})
...
from app.main import create_app
from app import BLUEPRINT
...

APP = create_app(os.getenv("APP_ENV", "dev"))
APP.register_blueprint(BLUEPRINT)
APP.app_context().push()
...

if __name__ == "__main__":
  APP.run(host="0.0.0.0", port=80)
...

cors = CORS()


def create_app()
    app = Flask(__name__)

    cors.init_app(app, resources={r"/*": {"origins": r".*\.mydomain.com"}})
...