关于python的bottle框架跨域请求报错问题的处理方法

发布时间 - 2026-01-11 00:15:01    点击率:

在用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代码正常了

以上所述是小编给大家介绍的关于python的bottle框架跨域请求报错问题的处理方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


# python  # bottle框架  # Python Tornado之跨域请求与Options请求方式  # 关于python 跨域处理方式详解  # python web.py开发httpserver解决跨域问题实例解析  # json跨域调用python的方法详解  # Python的Django应用程序解决AJAX跨域访问问题的方法  # Python项目跨域问题解决方案  # 小编  # 就可以  # 都是  # 却是  # 只需  # 这个问题  # 要在  # 给大家  # 将它  # 报错  # 后会  # 中都  # 解决方法  # 所述  # 给我留言  # 如下图  # 出现错误  # 错误提示  # 有任何  # 事实上 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  敲碗10年!Mac系列传将迎来「触控与联网」双革新  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  西安专业网站制作公司有哪些,陕西省建行官方网站?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  JavaScript如何操作视频_媒体API怎么控制播放  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何用5美元大硬盘VPS安全高效搭建个人网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  怎么用AI帮你为初创公司进行市场定位分析?  Laravel如何创建自定义中间件?(Middleware代码示例)  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何在云主机快速搭建网站站点?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何用美橙互联一键搭建多站合一网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel怎么使用artisan命令缓存配置和视图  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何获取免费开源的自助建站系统源码?  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  如何快速查询域名建站关键信息?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  使用C语言编写圣诞表白程序  ,在苏州找工作,上哪个网站比较好?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel怎么实现模型属性的自动加密  Laravel怎么上传文件_Laravel图片上传及存储配置  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  香港服务器如何优化才能显著提升网站加载速度?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  焦点电影公司作品,电影焦点结局是什么?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  高端云建站费用究竟需要多少预算?  Laravel如何使用Blade组件和插槽?(Component代码示例)  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  JavaScript Ajax实现异步通信  linux top下的 minerd 木马清除方法  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比