在使用axios进行跨域请求的时候默认会被阻止,需要进行一些配置
django-cors-headers 的安装
官方地址:https://pypi.org/project/django-cors-headers/
安装:
pip install django-cors-headers
将包载入项目:
INSTALLED_APPS = [
...
'corsheaders',
...
]
添加中间件:
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
(需要放置到 common 通用之上)
开始配置 CorsHeaders
# 跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'http://127.0.0.1:8080',
'http://localhost:8080',
)
# 这里添加你允许的请求方法
CORS_ALLOW_METHODS = ('DELETE', 'GET', 'OPTIONS',
'PATCH', 'POST', 'PUT', 'VIEW', )
# 这里添加你允许的请求头
CORS_ALLOW_HEADERS = ('XMLHttpRequest', 'X_FILENAME', 'accept-encoding', 'authorization',
'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', 'Pragma', )
设置完成后,再次发送 Ajax 请求试试吧!
edge浏览器的坑
这里有个坑,用edge浏览器测试的时候死活不行,换了firefox发现可以了。
百度之后发现edge浏览器需要安装一个插件才行。
安装后需要启用一下