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使用cookielib库示例分享
Mar 03 Python
python中的多重继承实例讲解
Sep 28 Python
python列表操作之extend和append的区别实例分析
Jul 28 Python
浅谈Python中range和xrange的区别
Dec 20 Python
python 实现分页显示从es中获取的数据方法
Dec 26 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
PyQt5的相对布局管理的实现
Aug 07 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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
ajax 的post方法实例(带循环)
2011/07/04 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
JavaScript 比较时间大小的代码
2010/04/24 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
JavaScript实现表单注册、表单验证、运算符功能
2018/10/15 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
python根据出生年份简单计算生肖的方法
2015/03/27 Python
Djang中静态文件配置方法
2015/07/30 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
numpy中的高维数组转置实例
2018/04/17 Python
python小程序实现刷票功能详解
2019/07/17 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
党员干部廉洁承诺书
2014/05/28 职场文书
党员志愿者活动总结
2014/06/26 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
python文件与路径操作神器 pathlib
2022/04/01 Python