浅谈django rest jwt vue 跨域问题


Posted in Python onOctober 26, 2018

django rest framework 使用 router 注册url时,访问接口 包302错误 可能是因为请求url 写法有问题,

如请求 /api/login/ 报302 ,需要去掉后面的反斜杠,正确写法 /api/login 请求跨域:

跨域:

简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。这显然是不安全的。为此,浏览器的鼻祖:网景(Netscape)公司提出了优秀的解决方案:著名的浏览器同源策略。现在所有支持JavaScript的浏览器都会使用这个策略。

同源:

域名、协议、端口均相同的网站即为同源。

流程:

当一个浏览器的两个Tab页分别打开百度和谷歌页面时,百度发起一个脚本执行,此时浏览器会检查该脚本属于哪个页面。即检查是否同源。只有和百度同源的脚本才会被执行。若非同源,在请求数据时,浏览器会在控制台报一个异常。提示拒绝访问。

解决方法:

安装django-cors-headers

pip install django-cors-headers

settings.py配置

INSTALLED_APPS = [

  ...

  "corsheaders",

...

]

 

MIDDLEWARE_CLASSES = (

  ...

"corsheaders.middleware.CorsMiddleware",

"django.middleware.common.CommonMiddleware", # 注意顺序

...

)

# 跨域增加忽略

CORS_ALLOW_CREDENTIALS = True

CORS_ORIGIN_ALLOW_ALL = True

CORS_ORIGIN_WHITELIST = (

  "*"

)

 

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",

)

解决

通过以上配置,即可完美解决django跨域请求处理。

需要注意的就是cors - headers的中间件CorsMiddleware在注册时必须放在django - common中间件的前一个。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python写个下载teahour音频的小脚本
May 08 Python
浅谈Python中的可变对象和不可变对象
Jul 07 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
May 24 Python
在Python中定义一个常量的方法
Nov 10 Python
pandas分别写入excel的不同sheet方法
Dec 11 Python
python dlib人脸识别代码实例
Apr 04 Python
浅析Python 中几种字符串格式化方法及其比较
Jul 02 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
python将dict中的unicode打印成中文实例
May 11 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
May 18 Python
python 实现aes256加密
Nov 27 Python
python如何做代码性能分析
Apr 26 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 #Python
python实现旋转和水平翻转的方法
Oct 25 #Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 #Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 #Python
python微信公众号之关注公众号自动回复
Oct 25 #Python
python 文件查找及内容匹配方法
Oct 25 #Python
利用python循环创建多个文件的方法
Oct 25 #Python
You might like
日本十大惊悚动漫
2020/03/04 日漫
用PHP来写记数器(详细介绍)
2006/10/09 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
2008/03/28 PHP
php获取汉字首字母的函数
2013/11/07 PHP
Zend Guard使用指南及问题处理
2015/01/07 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
JS启动应用程序的一个简单例子
2008/05/11 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
Python验证码识别处理实例
2015/12/28 Python
python 类详解及简单实例
2017/03/24 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
求职简历的自我评价怎样写好
2013/10/07 职场文书
大学在校生求职信范文
2013/11/21 职场文书
领导接待方案
2014/03/13 职场文书
安全生产目标责任书
2014/04/14 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
三方股份合作协议书
2014/10/13 职场文书
英文道歉信
2015/01/20 职场文书
运动会通讯稿300字
2015/07/20 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
Python Pandas 删除列操作
2022/03/16 Python
Java数组详细介绍及相关工具类
2022/04/14 Java/Android