关于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使用socket远程连接错误处理方法
Apr 29 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
python+pyqt5实现24点小游戏
Jan 24 Python
Python PyCharm如何进行断点调试
Jul 05 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
Aug 22 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
python Opencv计算图像相似度过程解析
Dec 03 Python
如何安装并在pycharm使用selenium的方法
Apr 30 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
python模拟点击在ios中实现的实例讲解
Nov 26 Python
python爬虫利用代理池更换IP的方法步骤
Feb 21 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php生成随机密码的几种方法
2011/01/17 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JavaScript中的事件处理
2008/01/16 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
详解微信UnionID作用
2019/05/15 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python xml解析实例详解
2016/11/14 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python select.select模块通信全过程解析
2017/09/20 Python
Python随机函数random()使用方法小结
2018/04/29 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
新闻专业本科生的自我评价分享
2013/11/20 职场文书
店长助理岗位职责
2013/12/13 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
团支部书记竞选稿
2015/11/21 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书