【记录】Django解决与VUE跨域问题

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 = ('*')

【注】在生产环境中应该明确限制来源以增强安全性

相关推荐
最逗前端小白鼠15 分钟前
vue3 数据响应式遇到的问题
前端·vue.js
m0_7478545227 分钟前
如何为禁用按钮点击添加提示文案
jvm·数据库·python
2301_8035389539 分钟前
CSS如何设计简洁的移动端底部固定导航_利用position-fixed实现
jvm·数据库·python
vegetablec1 小时前
CSS如何制作卡片翻开呈现另一面的翻牌动画
jvm·数据库·python
吕源林1 小时前
Golang怎么Redis发布订阅_Golang如何用Publish和Subscribe收发消息【实战】
jvm·数据库·python
用户8356290780511 小时前
使用 Python 合并与拆分 Excel 单元格的实用方法
后端·python
2301_764150561 小时前
Golang colly爬虫框架如何用_Golang colly教程【进阶】
jvm·数据库·python
卤蛋fg61 小时前
vxe-table 自定义数字行主键,解决默认字符串主键与后端类型不匹配问题
vue.js
2301_803538951 小时前
SQL统计各分组中排名前三的记录_使用窗口函数RANK
jvm·数据库·python
2301_782659181 小时前
如何让按钮悬停时阴影位置保持固定(仅按钮位移)
jvm·数据库·python