关于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中pycurl库的用法实例
Sep 30 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
Django 使用Ajax进行前后台交互的示例讲解
May 28 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
python 实现得到当前时间偏移day天后的日期方法
Dec 31 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
如何基于Python批量下载音乐
Nov 11 Python
django ajax发送post请求的两种方法
Jan 05 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 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/03 冲泡冲煮
基于empty函数的输出详解
2013/06/17 PHP
PHP中的Memcache详解
2014/04/05 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
基于JS2Image实现圣诞树代码
2015/12/24 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
javascript代码优化的8点总结
2018/01/29 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
vue.js实现简单购物车功能
2020/05/30 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
python爬虫获取百度首页内容教学
2018/12/23 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
工程师求职简历的自我评价分享
2013/10/10 职场文书
半年思想汇报
2013/12/30 职场文书
2014年三八妇女节活动方案
2014/02/28 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
销售员自我评价
2015/03/11 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python