关于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聚类算法之DBSACN实例分析
Nov 20 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Django框架安装及项目创建过程解析
Sep 14 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
深入解析NumPy中的Broadcasting广播机制
May 30 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 过滤危险html代码
2009/06/29 PHP
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
支持中文的php加密解密类代码
2011/11/27 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Laravel框架学习笔记之批量更新数据功能
2019/05/30 PHP
jquery操作select option 的代码小结
2011/06/21 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
微信小程序实现留言板
2018/10/31 Javascript
微信小程序实现跑马灯效果
2020/10/21 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
微信公众号网页分享功能开发的示例代码
2020/05/27 Javascript
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
python实现学生管理系统
2018/01/11 Python
Python实现购物车程序
2018/04/16 Python
pycharm 主题theme设置调整仿sublime的方法
2018/05/23 Python
python如何制作英文字典
2019/06/25 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
职工趣味运动会方案
2014/02/10 职场文书
高一新生军训感言
2014/03/02 职场文书
商场消防安全责任书
2014/07/29 职场文书
员工评语范文
2014/12/31 职场文书
工作调动申请报告
2015/05/18 职场文书