Django解析跨域问题

跨域问题解决

CORS(跨域资源共享,Cross-Origin Resource Sharing)是一种跨域访问的机制,可让Ajax实现跨域访问。

其实,在服务器的response header中,加入"Access-Control-Allow-Origin: *"便可支持CORS,很是的简单,apache/nginx等怎么配置,见参考文档。

在Django中,有人开发了CORS-header的middleware只需在settings.py中做一些简单的配置即可,其他不用作任何修改,我们也不用自己手动的创建中间件对response处理了,直接用以下配置即可, 现在用起来服务器端完全开放,开启CORS,没有任何跨域烦恼

1,安装django-cors-headers库

pip install django-cors-headers -i https://pypi.tuna.tsinghua.edu.cn/simple

2,添加到应用程序中

INSTALLED_APPS = [

... ,

"corsheaders" ,

... ,

]

3,在中间件中加监听响应

CorsMiddleware 需要放在第一位,不放在第一位,可能会造成某些请求没有添加CORS。

MIDDLEWARE = [

"corsheaders.middleware.CorsMiddleware" ,

... ,

]

4,设置访问白名单

CORS_ORIGIN_ALLOW_ALL为True, 指定所有域名(ip)都可以访问后端接口, 默认为False

CORS_ORIGIN_ALLOW_ALL = True

5,设置允许携带cookie

CORS_ALLOW_CREDENTIALS = True

6,设置默认允许请求头方法。

CORS_ALLOW_METHODS = [

'GET',

'POST',

'PUT',

'PATCH',

'DELETE',

]

最后我们在测试前面的vue调用实例:

测试OK。说明跨域请求配置没问题

相关推荐
趙卋傑30 分钟前
项目发布部署
linux·服务器·后端·web
没有梦想的咸鱼185-1037-166342 分钟前
【遥感技术】从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
pytorch·python·深度学习·机器学习·数据分析·cnn·transformer
钟爱蛋炒饭1 小时前
基于深度学习神经网络协同过滤模型(NCF)的视频推荐系统
python·神经网络·机器学习
eqwaak01 小时前
Python Pillow库详解:图像处理的瑞士军刀
开发语言·图像处理·python·语言模型·pillow
RE-19011 小时前
制冷剂中表压对应温度值的获取(Selenium)
爬虫·python·selenium·jupyter·pandas·danfoss·reftools
测试老哥1 小时前
Python+selenium自动化生成测试报告
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
数据知道1 小时前
Go基础:Go语言能用到的常用时间处理
开发语言·后端·golang·go语言
IT北辰2 小时前
Linux 系统python环境( Miniconda),最新版
linux·运维·python
不爱编程的小九九2 小时前
小九源码-springboot048-基于spring boot心理健康服务系统
java·spring boot·后端
龙茶清欢2 小时前
Spring Boot 应用启动组件加载顺序与优先级详解
java·spring boot·后端·微服务