关于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 算法 排序实现快速排序
Jun 05 Python
Python制作CSDN免积分下载器
Mar 10 Python
Python实现保证只能运行一个脚本实例
Jun 24 Python
python简易远程控制单线程版
Jun 20 Python
python实现内存监控系统
Mar 07 Python
python简单区块链模拟详解
Jul 03 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
python实现图像全景拼接
Mar 27 Python
为什么python比较流行
Jun 19 Python
基于PyTorch中view的用法说明
Mar 03 Python
整理Python中常用的conda命令操作
Jun 15 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中实现图片的锐化
2006/10/09 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
php中的依赖注入实例详解
2019/08/14 PHP
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
AngularJS动态生成select下拉框的方法实例
2019/11/17 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
python实现人机五子棋
2020/03/25 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
python 通过文件夹导入包的操作
2020/06/01 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
检讨书范文大全
2015/05/07 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
婚礼答谢词范文
2015/09/29 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
Pytest中conftest.py的用法
2021/06/27 Python
python字典进行运算原理及实例分享
2021/08/02 Python
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js