首頁  >  文章  >  後端開發  >  如何在 Flask 中實現跨域資源共享 (CORS):逐步指南

如何在 Flask 中實現跨域資源共享 (CORS):逐步指南

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-28 09:43:01880瀏覽

How to Implement Cross-Origin Resource Sharing (CORS) in Flask: A Step-by-Step Guide

Flask 中的CORS:啟用跨來源請求的逐步指南

跨來源資源共享(CORS) 是Web 應用程式中允許跨域請求的基本機制。 Flask 是一款流行的基於 Python 的 Web 框架,內建了對 CORS 的支持,可以輕鬆實現跨域存取。

在Flask 中啟用CORS

如果您因為缺少CORS 標頭而遇到「XMLHttpRequest 無法載入」錯誤,請依照下列步驟操作:

  1. 安裝flask-cors:

    <code class="shell">pip install Flask-CORS</code>
  2. 在Flask 中導入CORS:

    <code class="python">from flask_cors import CORS</code>
    在Flask 中導入CORS:
  3. 初始化CORS 物件:
    <code class="python">cors = CORS(app)</code>

  4. 設定CORS 標頭>更新CORS 配置以指定允許跨域請求的標頭。預設情況下,Flask-CORS 僅允許“Content-Type”標頭。您可以根據需要擴展此標頭以包含其他標頭,例如「授權」。

    <code class="python">app.config['CORS_HEADERS'] = 'Content-Type, Authorization'</code>
  5. 將 CORS 套用至特定路由:
    包裝您的使用 @cross_origin() 裝飾器的路由為該特定路由啟用 CORS。

    <code class="python">@app.route("/")
    @cross_origin()
    def my_route():
        ...</code>

或者,您可以將裝飾器全域應用到所有路由:

<code class="python">@app.after_request
def after_request(response):
    response.headers.add('Access-Control-Allow-Origin', '*')
    response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
    return response</code>

完成這些步驟後,Flask 會自動將必要的CORS 標頭添加到您的回應中,從而允許來自其他網域的跨來源請求。

附加說明

  • 如果您使用 Heroku 部署 Flask 應用程序,則可能需要在 Procfile 中手動設定 CORS。
  • 請記得將 Access-Control-Allow-Origin 標頭設定為適當的網域請求的來源。
  • 有關更多詳細資訊和選項,請參閱 Flask-CORS 文件:http://flask-cors.readthedocs.org/en/latest/

以上是如何在 Flask 中實現跨域資源共享 (CORS):逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn