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

遇到的問題
由于項目中路由是多級路由,通過主路由跳轉到子路由,一開始的時候,允許跨域的配置在上傳文件的子路由中進行設置,發(fā)現OPTIONS請求響應值中并沒有返回預期的頭文件,將跨域設置在主路由中設置即可
總結
以上就是本文關于Flask解決跨域的問題示例代碼的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
Python激活Anaconda環(huán)境變量的詳細步驟
今天給大家分享Python激活Anaconda環(huán)境變量的詳細步驟,激活Anaconda環(huán)境變量分為簡潔版和詳細版,簡潔版只需要通過輸入命令進行配置即可,詳細版本文通過圖文步驟給大家介紹的非常詳細,需要的朋友參考下吧2021-06-06
Python 在區(qū)塊鏈智能合約開發(fā)中的應用與實踐小結
Python作為一種廣泛應用的編程語言,在區(qū)塊鏈智能合約開發(fā)中扮演著重要角色,通過使用Python框架如Brownie和Web3.py,開發(fā)者可以輕松編寫和部署智能合約,感興趣的朋友一起看看吧2024-09-09

