关于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 03 Python
Python实现通讯录功能
Feb 22 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
python高阶爬虫实战分析
Jul 29 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
python快排算法详解
Mar 04 Python
python os.fork() 循环输出方法
Aug 08 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
详解python内置模块urllib
Sep 09 Python
matplotlib阶梯图的实现(step())
Mar 02 Python
解决jupyter notebook图片显示模糊和保存清晰图片的操作
Apr 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
php下使用iconv需要注意的问题
2010/11/20 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
Python排序算法实例代码
2017/08/10 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
报纸媒体创意广告词
2014/03/17 职场文书
高中生操行评语
2014/04/25 职场文书
老兵退伍标语
2014/10/07 职场文书
2014年纪委工作总结
2014/12/05 职场文书
教师党员自我评价2015
2015/03/04 职场文书
大国崛起观后感
2015/06/02 职场文书
对公司的意见和建议
2015/06/04 职场文书
我是特种兵观后感
2015/06/11 职场文书
无房证明样本
2015/06/17 职场文书
追悼会悼词大全
2015/06/23 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
导游词之包公祠
2019/11/25 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电
MySQL分布式恢复进阶
2022/07/23 MySQL