关于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中ConfigParse模块的用法
Sep 29 Python
Python中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
Python基础篇之初识Python必看攻略
Jun 23 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
python随机数分布random测试
Aug 27 Python
Python实现打砖块小游戏代码实例
May 18 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Python中logger日志模块详解
Aug 04 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 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
解析smarty模板中类似for的功能实现
2013/06/18 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
javascript 动态添加表格行
2006/06/22 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
基于jQuery试卷自动排版系统
2010/07/18 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
微信小程序 input表单与redio及下拉列表的使用实例
2017/09/20 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
2018/09/27 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
javascript中undefined的本质解析
2019/07/31 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
详解pandas映射与数据转换
2021/01/22 Python
光荣入党自我鉴定
2014/01/22 职场文书
党员批评与自我批评
2014/02/12 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
党委班子对照检查材料
2014/08/19 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
员工辞职信范文
2015/03/02 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书