Flask實(shí)現(xiàn)跨域請(qǐng)求的處理方法
在Flask開發(fā)RESTful后端時(shí),前端請(qǐng)求會(huì)遇到跨域的問題。下面是解決方法:
使用 flask-cors庫可以很容易的解決
pip install flask-cors
兩種方法,一個(gè)是全局/批量的,一個(gè)是單一獨(dú)立的:
安全起見,一般來說使用獨(dú)立的方式會(huì)常用一些。
1.獨(dú)立方式
通過給路由添加@cross_origin標(biāo)識(shí)即可
from flask import Flask, jsonify from flask_cors import cross_origin @app.route('/upload', methods=['POST', 'OPTIONS']) @cross_origin() def upload(): # todo result_text = {"result": "True"} return jsonify(result_text)
2.全局方式
也很簡單:
from flask import Flask from flask_cors import CORS if __name__ == '__main__': app.run(host='0.0.0.0', threaded=True, debug=True) CORS(app)
這樣所有的路由都會(huì)支持跨域了。
3.批量方式
還有根據(jù)路由正則來批量控制等方式,更加靈活,可以查閱官方文檔。
對(duì)請(qǐng)求的Response header中加入header
@app.after_request def af_request(resp): """ #請(qǐng)求鉤子,在所有的請(qǐng)求發(fā)生后執(zhí)行,加入headers。 :param resp: :return: """ resp = make_response(resp) resp.headers['Access-Control-Allow-Origin'] = '*' resp.headers['Access-Control-Allow-Methods'] = 'GET,POST' resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type' return resp
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python?Django實(shí)現(xiàn)增刪改查實(shí)戰(zhàn)代碼
這篇文章主要介紹了python?Django增刪改查快速體驗(yàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02Windows下PyCharm2018.3.2 安裝教程(圖文詳解)
這篇文章主要介紹了Windows下PyCharm2018.3.2 安裝教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Python實(shí)現(xiàn)常見的幾種加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
這篇文章主要介紹了Python實(shí)現(xiàn)常見的幾種加密算法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Python遍歷指定文件夾下的所有文件名的方法小結(jié)
當(dāng)需要遍歷指定文件夾下的所有文件名時(shí),Python提供了多種方法來實(shí)現(xiàn)這個(gè)任務(wù),本文將介紹如何使用Python來完成這一任務(wù),有需要的小伙伴可以參考下2024-01-01Django項(xiàng)目基礎(chǔ)配置和基本使用過程解析
這篇文章主要介紹了Django項(xiàng)目基礎(chǔ)配置和基本使用過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11