Flask解決跨域的問題示例代碼
跨域文件上傳的時候,瀏覽器會自動發(fā)起一個 OPTIONS 方法到服務(wù)器,現(xiàn)在后臺解決前端跨域解決前端跨域請求的問題
客戶端發(fā)起的這個 OPTIONS 可以說是一個“預(yù)請求”,用于探測后續(xù)真正需要發(fā)起的跨域 POST 請求對于服務(wù)器來說是否是安全可接受的,因為跨域提交數(shù)據(jù)對于服務(wù)器來說可能存在很大的安全問題
請求頭 Access-Control-Request-Method 用于提醒服務(wù)器在接下來的請求中將會使用什么樣的方法來發(fā)起請求
Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分別告知客戶端,服務(wù)器允許客戶端用于跨域的方法和域名
示例
下載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/
實現(xiàn)
現(xiàn)在我們看看解決問題的實際案例
from flask_cors import CORS
app = Flask(__name__,)
# r'/*' 是通配符,讓本服務(wù)器所有的URL 都允許跨域請求
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請求

遇到的問題
由于項目中路由是多級路由,通過主路由跳轉(zhuǎn)到子路由,一開始的時候,允許跨域的配置在上傳文件的子路由中進(jìn)行設(shè)置,發(fā)現(xiàn)OPTIONS請求響應(yīng)值中并沒有返回預(yù)期的頭文件,將跨域設(shè)置在主路由中設(shè)置即可
總結(jié)
以上就是本文關(guān)于Flask解決跨域的問題示例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟
今天給大家分享Python激活A(yù)naconda環(huán)境變量的詳細(xì)步驟,激活A(yù)naconda環(huán)境變量分為簡潔版和詳細(xì)版,簡潔版只需要通過輸入命令進(jìn)行配置即可,詳細(xì)版本文通過圖文步驟給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-06-06
關(guān)于Pycharm無法debug問題的總結(jié)
今天小編就為大家分享一篇關(guān)于Pycharm無法debug問題的總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項
這篇文章主要給大家介紹了關(guān)于Python面向?qū)ο蠡A(chǔ)入門之編碼細(xì)節(jié)與注意事項的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
Python 在區(qū)塊鏈智能合約開發(fā)中的應(yīng)用與實踐小結(jié)
Python作為一種廣泛應(yīng)用的編程語言,在區(qū)塊鏈智能合約開發(fā)中扮演著重要角色,通過使用Python框架如Brownie和Web3.py,開發(fā)者可以輕松編寫和部署智能合約,感興趣的朋友一起看看吧2024-09-09
python如何發(fā)送xml格式請求數(shù)據(jù)
這篇文章主要介紹了python如何發(fā)送xml格式請求數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

