首页 >后端开发 >Python教程 >如何在 Flask 中实现跨域资源共享 (CORS):分步指南

如何在 Flask 中实现跨域资源共享 (CORS):分步指南

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 09:43:01996浏览

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>
  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