跨域问题其他知识

安装:

pip install django-cors-headers

配置settings.py

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

  MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', # 放最前面 ... ]

1.CORS_ORIGIN_ALLOW_ALL: 添加允许执行跨站点请求的主机

如果为True,则将不使用白名单,并且将接受所有来源。默认为False

CORS_ORIGIN_ALLOW_ALL = True

2.CORS_ORIGIN_WHITELIST: 授权进行跨站点HTTP请求的来源列表。默认为[]

CORS_ORIGIN_WHITELIST = [
    "https://example.com",
    "https://sub.example.com",
    "http//localhost:8080",
    "http://127.0.0.1:9000",
]

3.CORS_ORIGIN_REGEX_WHITELIST: 代表正则表达式的字符串列表

CORS_ORIGIN_REGEX_WHITELIST = [
	r"^https://\w+\.example\.com$",
]

4.CORS_URLS_REGEX: 只需要在网站的一部分上使用CORS时很有用,例如位于的API /api/。
CORS_URLS_REGEX = r'^/api/.*$'

5.CORS_ALLOW_METHODS: 实际请求所允许的HTTP动词列表。

# 默认为
# CORS_ALLOW_METHODS = [
#     'DELETE',
#     'GET',
#     'OPTIONS',
#     'PATCH',
#     'POST',
#     'PUT',
# ]

6.# 自定义所允许的http动词列表

from corsheaders.defaults import default_methods
CORS_ALLOW_METHODS = list(default_methods) + [
    'POKE',
]

6.CORS_ALLOW_HEADERS: 发出实际请求时可以使用的非标准HTTP标头的列表。

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

# 自定义http标头
from corsheaders.defaults import default_headers
CORS_ALLOW_HEADERS = list(default_headers) + [
    'my-custom-header',
]
posted @ 2022-07-03 21:13  Mr_胡萝卜须  阅读(15)  评论(0编辑  收藏  举报