gpt4 book ai didi

python - 为 Flask-CORS 指定域

转载 作者:行者123 更新时间:2023-12-04 00:38:04 26 4
gpt4 key购买 nike

我有一个用作 web api 的 Python 脚本,许多域会调用它来获取他们想要的数据。所以为了使这个可行,我需要启用 CORS。我通读了 Flask 文档,但没有找到指定多个域以允许它们使用 CORS 的方法。

这是启用 CORS 的代码片段:

from flask_cors import cross_origin

@app.route("/")
@cross_origin()

上面的代码段为所有域启用了 CORS。我想将其限制为某些特定的域列表。我只想知道如何指定此列表。这是我想要做的:
@cross_origin(["www.domain1.com, www.domain2.com"])

最佳答案

来自 CORS 的文档:http://flask-cors.corydolphin.com/en/latest/api.html?highlight=origin#flask_cors.cross_origin

flask_cors.cross_origin(*args, **kwargs)

The origin, or list of origins to allow requests from. The origin(s)may be regular expressions, case-sensitive strings, or else anasterisk


所以,这里你需要给 liststring .喜欢:
cross_origin(["http://www.domain1.com", "http://www.domain2.com"]) 
请注意,您在单个字符串中提供了所有域。但是你需要提供一个列表。另请注意,您根据 RFC 6454 提供完全限定域名 (FQDN)。和 W3C Recommendation .
你也可以做这样的事情:
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})
在这里,我们允许应用程序中以 /api 开头的所有路径.根据您的要求,您可以在此处定义适当的路径。您还可以在此处指定要为其启用 CORS 的域列表的来源。
这是我编写的代码的链接: https://github.com/Mozpacers/MozStar/
CORS 没有做任何特别的事情;你只需要用一个特殊的标题回复请求,上面写着 Access-Control-Allow-Origin包含域请求来自。
对于飞行前请求,您可以看到如何使用 Flask before_request 和 after_request 装饰器使用自定义 header 进行回复: https://github.com/CuriousLearner/TrackMyLinks/blob/master/src/server/views.py#L130

关于python - 为 Flask-CORS 指定域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com