1 梗概
这里记录Django与VUE的跨域问题解决方法,主要修改内容是在 Django 中。当然其他的前端项目 Django 也可以这样处理。
2 安装辅助包
pip install django-cors-headers
3 配置 settings.py
INSTALLED_APPS = [
# ...
'corsheaders',
# ...
]
为了响应头的处理,更新MIDDLEWARE
设置,确保CorsMiddleware
位于适当的位置:
MIDDLEWARE = [
# 确保CorsMiddleware放置在可以生成响应的中间件之前,例如CommonMiddleware之前。
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
# 其他中间件...同时可注释掉
# 'django.middleware.csrf.CsrfViewMiddleware',
]
可以通过设置CORS_ALLOWED_ORIGINS
来指定哪些域被允许访问你的API:
CORS_ALLOWED_ORIGINS = [
"http://example.com",
"https://another-example.com",
]
若在开发阶段希望允许任何源,可以暂时设置为:
CORS_ALLOW_ALL_ORIGINS = True
开发过程中 可在settings.py 中增加下面的内容,
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_HEADERS = ('*')
【注】在生产环境中应该明确限制来源以增强安全性