当前位置: 首页 > news >正文

用CORS 解决vue.js django跨域调用

Cross-Origin Resource Sharing(CORS)跨域资源共享是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略,是 JSONP 模式的现代版。与 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比 JSONP 要来的好。另一方面,JSONP 可以在不支持 CORS 的老旧浏览器上运作。现代的浏览器都支持 CORS。

引入 django-cors-middleware

pip install django-cors-middleware
在 settings.py中添加,注意:不添加的话无法生效

INSTALLED_APPS = (
...
'corsheaders',
)
添加 中间件 监听

MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
配置允许跨域访问的域名

CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
'google.com',
'hostname.example.com'
)
默认值是全部:

CORS_ORIGIN_WHITELIST = ()
或者定义允许的匹配路径正则表达式.

CORS_ORIGIN_REGEX_WHITELIST = ('^(https?://)?(\w+.)?>google.com$', )
默认值:

CORS_ORIGIN_REGEX_WHITELIST = ()
设置允许访问的方法:

CORS_ALLOW_METHODS = (
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS'
)
设置允许的header:

默认值:

CORS_ALLOW_HEADERS = (
'x-requested-with',
'content-type',
'accept',
'origin',
'authorization',
'x-csrftoken'
)

转载于:https://blog.51cto.com/aaronsa/2071108

相关文章:

  • 2U 4节点Xeon SP服务器 (上):PowerEdge C6420更受重视
  • Laravel5.5 生成测试数据
  • Docker CentOS7 安装SSH
  • BZOJ3273 : liars
  • Python学习记录——Ubuntu(一)基本配置、快捷键和系统启停命令行
  • 使用Shiro进行权限控制的实现流程
  • mysql开发之---每日一得01
  • 网络基础CCNP|OSPF(5)
  • Npoi导出excel整理(附源码)
  • 理解数据库连接池底层原理之手写实现
  • python结巴(jieba)分词
  • [svc]ssh+gg二步认证
  • 文件上传到oss代码片段
  • Idea卡在Maven导入工程
  • 学习笔记 - Git
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • android图片蒙层
  • bearychat的java client
  • CentOS 7 修改主机名
  • docker-consul
  • k8s 面向应用开发者的基础命令
  • Rancher如何对接Ceph-RBD块存储
  • Redis的resp协议
  • Spring声明式事务管理之一:五大属性分析
  • text-decoration与color属性
  • webgl (原生)基础入门指南【一】
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 力扣(LeetCode)965
  • 判断客户端类型,Android,iOS,PC
  • 前端代码风格自动化系列(二)之Commitlint
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 我的业余项目总结
  • 无服务器化是企业 IT 架构的未来吗?
  • elasticsearch-head插件安装
  • 昨天1024程序员节,我故意写了个死循环~
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​configparser --- 配置文件解析器​
  • #1014 : Trie树
  • $().each和$.each的区别
  • ${ }的特别功能
  • (补)B+树一些思想
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (循环依赖问题)学习spring的第九天
  • (转)winform之ListView
  • (转)四层和七层负载均衡的区别
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(六):替换字符串中匹配的子串
  • .gitignore文件_Git:.gitignore
  • .net framework4与其client profile版本的区别