美文网首页
Python Flask项目设置跨域

Python Flask项目设置跨域

作者: llkevin13579 | 来源:发表于2022-02-11 17:02 被阅读0次

上一篇文章中,我利用Docker对Python Flask项目进行打包,并使用了Gitlab CI进行相关的CI/CD操作,最近这个项目遇到一个问题,利用Postman的测试接口的时候没有问题,但是用前端的网页去调用的时候就出现了跨域的问题。

经过搜索,发现有相应的Python包去解决这个问题,这个包叫做flask_cors,官方文档:https://pypi.org/project/Flask-Cors/,这个包类似node.js的cors包,配置好前端允许的请求头即可

这个项目中所有的接口都是对外的,所以需要一个全局的跨域设置

先引入flask_cors包:

from flask_cors import CORS    

然后设置所有的路径都通过该跨域设置:

CORS(app, resources={r"/*": {"origins": "*"}})

由于本项目还用到了socket.io,于是对于socket.io来说也需要设置该跨域,方法也很简单,在初始化的参数加上即可:

socketio = SocketIO()

socketio.init_app(app, async_mode=None, cors_allowed_origins='*')

提交代码之后重新部署,即可解决这个问题

另外如果想对某些路由进行单独设置,这个包提供了一个很方便的方法,叫做装饰器法,在对应的方法上面声明@cross_origin()即可,也就是:

@app.route("/")

@cross_origin()

def helloWorld():

    return "Hello, cross-origin-world!"

相关文章

网友评论

      本文标题:Python Flask项目设置跨域

      本文链接:https://www.haomeiwen.com/subject/yhtxlrtx.html