django解决跨域请求的问题


Posted in Python onNovember 11, 2018

解决方案

1.安装django-cors-headers

pip install django-cors-headers

2.配置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',
  'Pragma',
)

OK!问题解决!

其他解决方案

另外还从网上看到其他两种解决方案,但都不太合适。在此列出,供大家参考

1.使用JSONP

使用Ajax获取json数据时,存在跨域的限制。不过,在Web页面上调用js的script脚本文件时却不受跨域的影响,JSONP就是利用这个来实现跨域的传输。因此,我们需要将Ajax调用中的dataType从JSON改为JSONP(相应的API也需要支持JSONP)格式。

JSONP只能用于GET请求。

2.直接修改Django中的views.py文件

修改views.py中对应API的实现函数,允许其他域通过Ajax请求数据:

def myview(_request): 
response = HttpResponse(json.dumps({“key”: “value”, “key2”: “value”})) 
response[“Access-Control-Allow-Origin”] = “*” 
response[“Access-Control-Allow-Methods”] = “POST, GET, OPTIONS” 
response[“Access-Control-Max-Age”] = “1000” 
response[“Access-Control-Allow-Headers”] = “*” 
return response

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

Python 相关文章推荐
浅析AST抽象语法树及Python代码实现
Jun 06 Python
基于python中staticmethod和classmethod的区别(详解)
Oct 24 Python
python实现多张图片拼接成大图
Jan 15 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
kali中python版本的切换方法
Jul 11 Python
python yield和Generator函数用法详解
Feb 10 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 Python
vscode调试django项目的方法
Aug 06 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
Sep 01 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
matplotlib grid()设置网格线外观的实现
Feb 22 Python
python 生成图形验证码的方法示例
Nov 11 #Python
老生常谈python中的重载
Nov 11 #Python
Django跨域请求CSRF的方法示例
Nov 11 #Python
Python rstrip()方法实例详解
Nov 11 #Python
python requests爬取高德地图数据的实例
Nov 10 #Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 #Python
Python中的取模运算方法
Nov 10 #Python
You might like
PHP静态类
2006/11/25 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
Python类的基础入门知识
2008/11/24 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
django url到views参数传递的实例
2019/07/19 Python
python面向对象 反射原理解析
2019/08/12 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
DIY手工制作经营店创业计划书
2014/02/01 职场文书
保护环境建议书400字
2014/05/13 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
运动会报道稿大全
2015/07/23 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
八年级作文之友谊
2019/12/02 职场文书