📜  标头 cors - Python (1)

📅  最后修改于: 2023-12-03 15:40:26.874000             🧑  作者: Mango

标头: cors - Python

简介

CORS (跨域资源共享) 是一个机制,它用于处理跨域 AJAX 请求 (XMLHttpRequests) 的问题。Python 提供了很多方法来处理 CORS 的问题,本文将介绍其中一些方法。

Flask 中的 CORS

Flask 是一个流行的 Python web 框架,它提供了一个称为 Flask-CORS 的扩展来处理 CORS 的问题。安装 Flask-CORS 可以通过 pip 进行安装。

$ pip install flask-cors

使用 Flask-CORS 很简单,只需在您的 Flask 应用程序中导入 CORS 扩展并初始化即可。以下是一个简单的示例:

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

@app.route('/api')
def api():
    data = {'name': 'john', 'age': 25}
    return jsonify(data)

if __name__ == '__main__':
    app.run(debug=True)

这个示例应用程序提供了一个简单的接口,返回一个 JSON 格式的数据。使用 CORS 扩展后,其他域名下的脚本可以使用 XMLHttpRequests 跨域访问此 API 接口。

Django 中的 CORS

Django 也提供了一个称为 Django CORS Headers 的第三方 Django 应用程序,用于处理 CORS 的问题。使用 pip 可以很容易地安装它。

$ pip install django-cors-headers

然后,将以下代码添加到项目的 settings.py 中:

INSTALLED_APPS = [
    # ...
    'corsheaders',
    # ...
]

MIDDLEWARE = [
    # ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    # ...
]

CORS_ORIGIN_ALLOW_ALL = True

现在,您可以跨域访问 Django 应用程序中的 API 端点。例如:

from django.http import JsonResponse

def api(request):
    data = {'name': 'john', 'age': 25}
    return JsonResponse(data)
结论

在服务器端启用 CORS 是解决跨域问题的重要一步。Python 提供了很多方法来处理 CORS 的问题。本文介绍了 Flask-CORS 和 Django-cors-headers 两个第三方库来处理 CORS 问题。无论您选择哪个库,都可以非常容易地启用 CORS。