Django3.2.6跨域问题

127 阅读1分钟

安装依赖

django-cors-headers

pip install django-cors-headers

配置流程

1. INSTALLED_APPS中注册corsheaders

image.png

2. MIDDLEWARE中添加corsheaders.middleware.CorsMiddleware

image.png 位置尽量靠前,官方建议在'django.middleware.common.CommonMiddleware'上方

3. CORS_ORIGIN_ALLOW_ALL 布尔值 如果为True白名单不启用

4. 白名单

CORS_ORIGIN_WHITELIST = ["example.com"]

5.

CORS_ALLOW_METHODS = (
	'DELETE',
	'GET',
	'OPTIONS',
	'PATCH',
	'POST',
   'PUT',
)

6.

CORS_ALLOW_HEADERS = (
	'accept-encoding',
	'authorzation',
	'content-type',
	'dnt',
	'origin',
	'user-agent',
	'x-csrftoken',
	'x-requested-with',
)

到这里基本上所有的跨域问题就都解决了

7. CORS_PREFLIGHT_MAX_AGE

默认 86400s

8. CORS_EXPOSE_HEADERS []

特殊的ajax响应头,需要特殊说明

9. CORS_ALLOW_CREDENTIALS 布尔值, 默认False

是否要跨域的cookies