python bottle 终止返回_关于python的bottle框架跨域请求报错问题的处理
在用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:*,如下图:
通过DEBUG,进入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代码正常了
版权声明:
本文由AllEmpty原创并发布于博客园,欢迎转载,未经本人同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如有问题,可以通过1654937@qq.com 联系我,非常感谢。
发表本编内容,主要是为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:669058475,大家一起探讨。
python bottle 终止返回_关于python的bottle框架跨域请求报错问题的处理相关推荐
- ajax 请求_你了解前端出现Ajax跨域请求的原因吗?
ajax的跨域真正面目 作为一名前端开发人员,谈到Ajax几乎是无人不知无人不晓,每天都会跟Ajax打打交道,特别在如今提倡前后端分离的时代,更是相处甚多,使用过程中碰到最多的一个问题相信应该是请求跨 ...
- java 移动页面中的图片上传_移动端上传图片(ajax跨域请求)
第一次写项目开发经验,望担待. 除了前端以外的事就不叨叨了,下面开始弄干活(两个页面首页.列表页). 项目 开发简述 项目需求:上传图片并展示. 项目地址:项目的链接地址 开发工具:sublime 后 ...
- python全局变量有缩进吗_Python全局变量和局部变量的问题 400 请求报错 -问答-阿里云开发者社区-阿里云...
# coding:utf-8 sum = 5 def add(x, y): print sum sum = x + y if __name__ == '__main__': add(7, 8) 上面的 ...
- 跨域会报40几_总结一下跨域的几种情况
在网站开发中,经常会遇到跨域问题,下面总结一下集中常见的跨域问题. 1. 不同域名属于跨域,如:www.a.com 和www.b.com,另外www.a.com 和www.a.com.cn也属于不同域 ...
- 简书python自动化运维_简明Python开发教程(4):网络自动化运维的曙光
写在前面 本打算自动登陆一台路由器,执行查询配置指令,然后用正则表达式分析,获取该路由器的接口连接关系. 现在由于网络问题,导致无法直接telnet路由器,只能通过其他方式获取配置文件,如读取本地文件 ...
- python的知识体系_最新Python知识体系梳理
课程目录 Day01 Python教程:01.前提概要.wmv Python教程:02.Python基础复习.wmv Python教程:03.Python基础复习.wmv Python教程:04.Py ...
- python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页)...
python 全栈开发,Day87(ajax登录示例,CSRF跨站请求伪造,Django的中间件,自定义分页) 一.ajax登录示例 新建项目login_ajax 修改urls.py,增加路径 fro ...
- python https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法
python爬虫,使用requests库发送https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法: imp ...
- 复制出来 python -m pip install --upgrade pip 升级还是出现一堆红色英文,报错
复制出来 python -m pip install --upgrade pip 升级还是出现一堆红色英文,报错 升级不成功,出现一堆红色英文解决办法 下载pip包时请求超时,使用默认的镜像源时间过长 ...
- jsonp跨域原理_【网站技术解读①】Javascript实现跨域请求
推荐一个读者做的不错的编程学习网站: 网站:潜安 域名:http://www.qianani.com 另外将会不定期推送近期网站用到的一些技术,讲一些核心原理,今天为第一篇 问题由来: 最近一直在优化 ...
最新文章
- Matlab中计算程序运行时间的三种方法
- java 手势识别,AndroidStudio:手势识别
- 脚手架工程:介绍安装
- 使用活动记录执行CRUD
- spring mvc文件上传与下载
- ios6.0_6.1_苹果手机_evasion_完美越狱
- ciscotftp服务器(ciscotftp服务器下载)
- STM32--vs1053 WAV录音实现(保存在SD卡)
- GPT-3 离通用人工智能有多近?
- 张良(?—前189年)
- arcgis制作符号
- ANSYS软件许可证优化,高效提升工作效率
- Cocos Creator 随笔(1)-- 世界坐标,相对坐标转换问题
- python count函数时间复杂度_Python之时间复杂度
- Linux: 磁盘与文件系统管理
- Linux一些基本操作(一)
- 如何查询专利费减备案
- uni-app中使用unicloud短信验证码(开通、模板报备、使用)
- numpy_eye函数
- 像外行一样思考,像专家一样实践(读书笔记)