跨域问题其他知识
安装:
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',
]
本文来自博客园,作者:{Mr_胡萝卜须},转载请注明原文链接:https://www.cnblogs.com/Mr-fang/p/16440953.html