Flask解決跨域的問(wèn)題示例代碼
跨域文件上傳的時(shí)候,瀏覽器會(huì)自動(dòng)發(fā)起一個(gè) OPTIONS 方法到服務(wù)器,現(xiàn)在后臺(tái)解決前端跨域解決前端跨域請(qǐng)求的問(wèn)題
客戶(hù)端發(fā)起的這個(gè) OPTIONS 可以說(shuō)是一個(gè)“預(yù)請(qǐng)求”,用于探測(cè)后續(xù)真正需要發(fā)起的跨域 POST 請(qǐng)求對(duì)于服務(wù)器來(lái)說(shuō)是否是安全可接受的,因?yàn)榭缬蛱峤粩?shù)據(jù)對(duì)于服務(wù)器來(lái)說(shuō)可能存在很大的安全問(wèn)題
請(qǐng)求頭 Access-Control-Request-Method 用于提醒服務(wù)器在接下來(lái)的請(qǐng)求中將會(huì)使用什么樣的方法來(lái)發(fā)起請(qǐng)求
Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分別告知客戶(hù)端,服務(wù)器允許客戶(hù)端用于跨域的方法和域名
示例
下載flask_cors 包
pip install flask-cors
使用flask_cors的CORS,代碼示例
from flask_cors import * app = Flask(__name__) CORS(app, supports_credentials=True)
以下是Flask-CORS 的官方文檔鏈接
http://flask-cors.readthedocs.io/en/latest/
實(shí)現(xiàn)
現(xiàn)在我們看看解決問(wèn)題的實(shí)際案例
from flask_cors import CORS app = Flask(__name__,) # r'/*' 是通配符,讓本服務(wù)器所有的URL 都允許跨域請(qǐng)求 CORS(app, resources=r'/*') # 上傳文件 @uploadFiles.route('/upload', methods=['POST']) def uploadFile(): result_text = {"statusCode": 200,"message": "文件上傳成功"} response = make_response(jsonify(result_text)) response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Methods'] = 'OPTIONS,HEAD,GET,POST' response.headers['Access-Control-Allow-Headers'] = 'x-requested-with' return response
使用POSTMAN請(qǐng)求
遇到的問(wèn)題
由于項(xiàng)目中路由是多級(jí)路由,通過(guò)主路由跳轉(zhuǎn)到子路由,一開(kāi)始的時(shí)候,允許跨域的配置在上傳文件的子路由中進(jìn)行設(shè)置,發(fā)現(xiàn)OPTIONS請(qǐng)求響應(yīng)值中并沒(méi)有返回預(yù)期的頭文件,將跨域設(shè)置在主路由中設(shè)置即可
總結(jié)
以上就是本文關(guān)于Flask解決跨域的問(wèn)題示例代碼的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
python批量插入數(shù)據(jù)到mysql的3種方法
這篇文章主要給大家介紹了關(guān)于python批量插入數(shù)據(jù)到mysql的3種方法,在日常處理數(shù)據(jù)的過(guò)程中,我們都有批量寫(xiě)入數(shù)據(jù)庫(kù)的需求,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10Python爬蟲(chóng)使用代理IP的實(shí)現(xiàn)
這篇文章主要介紹了Python爬蟲(chóng)使用代理IP的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10python des,aes,rsa加解密的實(shí)現(xiàn)
這篇文章主要介紹了python des,aes,rsa加解密的實(shí)現(xiàn),幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-01-01python PaddleOCR庫(kù)用法及知識(shí)點(diǎn)詳解
在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python PaddleOCR庫(kù)用法及知識(shí)點(diǎn)詳解內(nèi)容,對(duì)此有需要的朋友們可以學(xué)習(xí)參考下。2021-07-07Python requests及aiohttp速度對(duì)比代碼實(shí)例
這篇文章主要介紹了Python requests及aiohttp速度對(duì)比代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07python機(jī)器學(xué)習(xí)之決策樹(shù)分類(lèi)詳解
這篇文章主要介紹了python機(jī)器學(xué)習(xí)之決策樹(shù)分類(lèi),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12python2.6.6如何升級(jí)到python2.7.14
這篇文章主要為大家詳細(xì)介紹了python2.6.6如何升級(jí)到python2.7.14,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04tensorflow官方github預(yù)訓(xùn)練模型下載方式
這篇文章主要介紹了tensorflow官方github預(yù)訓(xùn)練模型下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02