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中元祖、列表和字典的区别
Aug 17 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
Django内容增加富文本功能的实例
Oct 17 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
python使用matplotlib画饼状图
Sep 25 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
Python实现代码统计工具
Sep 19 Python
pandas 空数据处理方法详解
Nov 02 Python
Python笔记之工厂模式
Nov 20 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 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自定义函数收代码
2010/08/01 PHP
PHP 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
javascript hasFocus使用实例
2010/06/29 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
Python实现ATM系统
2020/02/17 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
Python如何定义有默认参数的函数
2020/08/10 Python
学院领导推荐信
2013/10/30 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
婚庆答谢词
2015/01/04 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript