关于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发送伪造的arp请求
Jan 09 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
Python解析树及树的遍历
Feb 03 Python
python连接mysql实例分享
Oct 09 Python
python GUI实例学习
Nov 21 Python
python遍历文件夹下所有excel文件
Jan 03 Python
用python实现k近邻算法的示例代码
Sep 06 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
详解Python requests 超时和重试的方法
Dec 18 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 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将回调函数作用到给定数组单元的方法
2014/08/19 PHP
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
jQuery下通过$.browser来判断浏览器.
2011/04/05 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
setTimeout自动触发一个js的方法
2014/01/15 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
简单的js计算器实现
2016/10/26 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
如何使用angularJs
2017/05/08 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
python框架flask表单实现详解
2019/11/04 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
社会实践自我鉴定
2013/11/07 职场文书
劳资人员岗位职责
2013/12/19 职场文书
大一军训感言
2014/01/09 职场文书
学校门卫岗位职责
2014/03/16 职场文书
高三英语复习计划
2015/01/19 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
八年级作文之友谊
2019/12/02 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
如何在Python中妥善使用进度条详解
2022/04/05 Python