关于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实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
探索Python3.4中新引入的asyncio模块
Apr 08 Python
Python实现简单字典树的方法
Apr 29 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
django使用LDAP验证的方法示例
Dec 10 Python
python交换两个变量的值方法
Jan 12 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
解决Python spyder显示不全df列和行的问题
Apr 20 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
总结python 三种常见的内存泄漏场景
Nov 20 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
本地计算机无法启动Apache故障处理
2014/08/08 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python中字符串的修改及传参详解
2016/11/30 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
python基础练习之几个简单的游戏
2017/11/10 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
python读取图片任意范围区域
2019/01/23 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
个人实习生的自我评价
2014/02/16 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
高中学生评语大全
2014/04/25 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
golang 实现并发求和
2021/05/08 Golang
SQL SERVER存储过程用法详解
2022/02/24 SQL Server