关于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实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
python生成excel的实例代码
Nov 08 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python在每个字符后添加空格的实例
May 07 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
python如何获取列表中每个元素的下标位置
Jul 01 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
python 实用工具状态机transitions
Nov 21 Python
python用分数表示矩阵的方法实例
Jan 11 Python
python中pyqtgraph知识点总结
Jan 26 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
ip签名探针
2006/10/09 PHP
MVC模式的PHP实现
2006/10/09 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python使用django搭建web开发环境
2017/06/09 Python
django中模板的html自动转意方法
2018/05/27 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
python如何基于redis实现ip代理池
2020/01/17 Python
Python接口开发实现步骤详解
2020/04/26 Python
Python中有几个关键字
2020/06/04 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
华为c/c++笔试题
2016/01/25 面试题
毕业生物理教师求职信
2013/10/17 职场文书
初一英语教学反思
2014/01/11 职场文书
网上书店创业计划书
2014/01/12 职场文书
自荐书4要点
2014/01/25 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
消防安全承诺书
2014/05/22 职场文书
离婚协议书范文2014
2014/10/16 职场文书
2014年终个人工作总结
2014/11/07 职场文书
最感人的道歉情书
2015/05/12 职场文书
转学证明范本
2015/06/19 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
Python使用openpyxl模块处理Excel文件
2022/06/05 Python