Python Flask項目設(shè)置跨域

上一篇文章中,我利用Docker對Python Flask項目進行打包,并使用了Gitlab CI進行相關(guān)的CI/CD操作,最近這個項目遇到一個問題,利用Postman的測試接口的時候沒有問題,但是用前端的網(wǎng)頁去調(diào)用的時候就出現(xiàn)了跨域的問題。

經(jīng)過搜索,發(fā)現(xiàn)有相應(yīng)的Python包去解決這個問題,這個包叫做flask_cors,官方文檔:https://pypi.org/project/Flask-Cors/,這個包類似node.js的cors包,配置好前端允許的請求頭即可

這個項目中所有的接口都是對外的,所以需要一個全局的跨域設(shè)置

先引入flask_cors包:

from flask_cors import CORS????

然后設(shè)置所有的路徑都通過該跨域設(shè)置:

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

由于本項目還用到了socket.io,于是對于socket.io來說也需要設(shè)置該跨域,方法也很簡單,在初始化的參數(shù)加上即可:

socketio = SocketIO()

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

提交代碼之后重新部署,即可解決這個問題


另外如果想對某些路由進行單獨設(shè)置,這個包提供了一個很方便的方法,叫做裝飾器法,在對應(yīng)的方法上面聲明@cross_origin()即可,也就是:

@app.route("/")

@cross_origin()

def helloWorld():

????return "Hello, cross-origin-world!"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容