关于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中对列表排序实例
Jan 04 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
基于python 处理中文路径的终极解决方法
Apr 12 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
在python中只选取列表中某一纵列的方法
Nov 28 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python实现双色球随机选号
Jan 01 Python
Python数据分析之pandas函数详解
Apr 21 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
May 24 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
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
深入理解PHP之require/include顺序 推荐
2011/01/02 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
2013/07/13 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
Nodejs之TCP服务端与客户端聊天程序详解
2017/07/07 NodeJs
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
Typescript的三种运行方式(小结)
2019/09/18 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
python 的列表遍历删除实现代码
2020/04/12 Python
使用Python对Access读写操作
2017/03/30 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
自我鉴定模板
2013/10/29 职场文书
客服主管岗位职责
2013/12/13 职场文书
合作协议书范本
2014/04/17 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
2015年新农合工作总结
2015/03/30 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
酒店开业主持词
2015/07/02 职场文书