浅谈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实现二叉树结构与进行二叉树遍历的方法详解
May 24 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
django中的setting最佳配置小结
Nov 21 Python
Python实现自定义函数的5种常见形式分析
Jun 16 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
如何通过Python实现标签云算法
Jul 02 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
关于Python错误重试方法总结
Jan 03 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
php读取mysql的简单实例
2014/01/15 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
js实现提交前对列表数据的增删改查
2020/01/16 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
Windows下python2.7.8安装图文教程
2016/05/26 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
python计算两个数的百分比方法
2018/06/29 Python
python中的&&及||的实现示例
2019/08/07 Python
如何使用repr调试python程序
2020/02/28 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
学生会个人自荐书范文
2014/02/12 职场文书
教师教学评估方案
2014/05/09 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
Python打包exe时各种异常处理方案总结
2021/05/18 Python
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers