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 相关文章推荐
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
Django在win10下的安装并创建工程
Nov 20 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
Python实现二维曲线拟合的方法
Dec 29 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
我们为什么要减少Python中循环的使用
Jul 10 Python
django之自定义软删除Model的方法
Aug 14 Python
PyTorch在Windows环境搭建的方法步骤
May 12 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
详解Python高阶函数
Aug 15 Python
python安装第三方库如xlrd的方法
Oct 31 Python
python 制作简单的音乐播放器
Nov 25 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
Zerg建筑一览
2020/03/14 星际争霸
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
javascript prototype 原型链
2009/03/12 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
jquery中cookie用法实例详解(获取,存储,删除等)
2016/01/04 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
jQuery中常用动画效果函数(日常整理)
2016/09/17 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
python支付宝支付示例详解
2019/08/22 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
Python自动登录QQ的实现示例
2020/08/28 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
NUK奶瓶美国官网:NUK美国
2016/09/26 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
美发店5.1活动方案
2014/01/24 职场文书
经销商订货会主持词
2014/03/27 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL