浅谈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实时获取cmd的输出
Dec 13 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 Python
详解Python 数据库 (sqlite3)应用
Dec 07 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
python 输出上个月的月末日期实例
Apr 11 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
Django中ORM找出内容不为空的数据实例
May 20 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
python上下文管理器异常问题解决方法
Feb 07 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源码之explode使用说明
2011/08/05 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&”)
2016/12/23 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
详解react-redux插件入门
2018/04/19 Javascript
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
使用express来代理服务的方法
2019/06/21 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
关于反爬虫的一些简单总结
2017/12/13 Python
python中的随机函数random的用法示例
2018/01/27 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
BP神经网络原理及Python实现代码
2018/12/18 Python
大学生职业生涯规划书模版
2013/12/30 职场文书
大学军训感想
2014/02/12 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
毕业实习感受与体会
2015/05/26 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
大学生暑假实习总结
2015/07/13 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
浅谈Nginx 中的两种限流方式
2021/03/31 Servers
如何有效防止sql注入的方法
2021/05/25 SQL Server
常用的Python代码调试工具总结
2021/06/23 Python