关于python的bottle框架跨域请求报错问题的处理方法


Posted in Python onMarch 19, 2017

在用python的bottle框架开发时,前端使用ajax跨域访问时,js代码老是进入不了success,而是进入了error,而返回的状态却是200。url直接在浏览器访问也是正常的,浏览器按F12后会发现下面这个错误提示

XMLHttpRequest cannot load http://192.168.0.118:8081/get_mobile_number/?id=1. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

通过搜索引擎查询错误,会发现几乎查找出来的答案都说是跨域问题,只需要在主文件的代码中添加下面就可以了,国外的网站好多解决方案都是这样说明

@hook('after_request')
def enable_cors():
 response.headers['Access-Control-Allow-Origin'] = '*'

而事实上是按找出来的解决方法添加后还是出现错误,查看浏览器输出的http头并没有看到我们刚刚增加的Access-Control-Allow-Origin:*,如下图:

关于python的bottle框架跨域请求报错问题的处理方法

通过DEBUG,进入bottle的源码中查看

关于python的bottle框架跨域请求报错问题的处理方法

这个问题我测试过在python2与python3对应的bottle框架中都存在这种问题,我们将它改为:

class HTTPResponse(Response, BottleException):
  def __init__(self, body='', status=None, headers=None, **more_headers):
    super(HTTPResponse, self).__init__(body, status, headers, **more_headers)
  def apply(self, response):
    response._status_code = self._status_code
    response._status_line = self._status_line
    if self._headers:
      if response._headers:
        response._headers.update(self._headers)
      else:
        response._headers = self._headers
    response._cookies = self._cookies
    response.body = self.body

 再运行代码就可以看见ajax代码正常了

关于python的bottle框架跨域请求报错问题的处理方法

以上所述是小编给大家介绍的关于python的bottle框架跨域请求报错问题的处理方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
Python编程给numpy矩阵添加一列方法示例
Dec 04 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
Python读写zip压缩文件的方法
Aug 29 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python Numpy库安装与基本操作示例
Jan 08 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
python求最大公约数和最小公倍数的简单方法
Feb 13 Python
Python读取JSON数据操作实例解析
May 18 Python
django为Form生成的label标签添加class方式
May 20 Python
django使用graphql的实例
Sep 02 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
python安装及变量名介绍详解
Dec 12 Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 #Python
解决Python requests 报错方法集锦
Mar 19 #Python
python字符串str和字节数组相互转化方法
Mar 18 #Python
Python执行时间的计算方法小结
Mar 17 #Python
python django事务transaction源码分析详解
Mar 17 #Python
Python自动生产表情包
Mar 17 #Python
Python实现的异步代理爬虫及代理池
Mar 17 #Python
You might like
PHP文件下载类
2006/12/06 PHP
mysql 性能的检查和优化方法
2009/06/21 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
ThinkPHP内置jsonRPC的缺陷分析
2014/12/18 PHP
10条php编程小技巧
2015/07/07 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
2013/08/02 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
最新教师自我评价分享
2013/11/12 职场文书
小学生元旦感言
2014/02/26 职场文书
财务主管岗位职责
2014/02/28 职场文书
单位委托书
2014/10/15 职场文书
2015年大学生工作总结
2015/04/21 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书