温馨提示×

django restful 框架如何处理跨域请求

小樊
81
2024-10-15 17:06:24
栏目: 编程语言

在 Django RESTful 框架中处理跨域请求,可以使用 Django 的第三方库 django-cors-headers。以下是安装和配置该库的步骤:

  1. 安装 django-cors-headers
pip install django-cors-headers
  1. 在 Django 项目的 settings.py 文件中,将 corsheaders 添加到 INSTALLED_APPS 列表中:
INSTALLED_APPS = [
    # ...
    'corsheaders',
    # ...
]
  1. settings.py 文件中,配置 MIDDLEWARE 列表,将 corsheaders.middleware.CorsMiddleware 添加到列表的开头:
MIDDLEWARE = [
    # ...
    'corsheaders.middleware.CorsMiddleware',
    # ...
]
  1. 配置 CORS_ORIGIN_ALLOW_ALL 允许所有来源的跨域请求(在生产环境中,建议仅允许可信来源):
CORS_ORIGIN_ALLOW_ALL = True

或者,你可以指定允许的跨域请求来源:

CORS_ORIGIN_WHITELIST = [
    'http://localhost:3000',
    'http://example.com',
]
  1. 如果需要设置跨域请求的允许方法、允许头部等,可以在 settings.py 文件中配置 CORS_ALLOW_METHODSCORS_ALLOW_HEADERS
CORS_ALLOW_METHODS = [
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
]

CORS_ALLOW_HEADERS = [
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
]

完成以上步骤后,Django RESTful 框架就可以处理跨域请求了。

0