位置: IT常识 - 正文

解决has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’报错跨域问题(解决口苦最快的方法)

发布时间:2024-01-05
解决has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’报错跨域问题 关于前后端分离踩过的坑

推荐整理分享解决has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’报错跨域问题(解决口苦最快的方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:解决脱发的8个方法,解决口苦最快的方法,解决中暑最有效方法,解决中暑最有效方法,解决烧心最快方法,解决中暑最有效方法,解决中暑最有效方法,解决烧心最快方法,内容如对您有帮助,希望把文章链接给更多的朋友!

故事起因:前天晚上,在计划中学完了一个前端获取后端请求的框架叫axios。然后准备用axios、vue、以及fastapi(一个Python的web框架)写一个前后端分离的小demo。结果变成了事故,竟然报错了。

主要错误是:has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’。大概的意思是,已被CORS策略阻止:无“访问控制允许来源”。当时我也百度了一下CORS后来因为自己懒了,所以就去问一个朋友,然后他就让我去搜索如果解决跨域问题。(这个朋友还说了一下一般如何百度,技术栈+问题),所以明确一下解决跨域问题,技术栈在后端。接下来就是处理该问题的过程!!!

一、什么是源和跨域?

源(origin)就是协议、域名和端口号。 URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口全部相同,则表示他们同源。否则,只要协议、域名、端口有任何一个不同,就是跨域。

举个例子:http://127.0.0.1:5500/VueStudy/test.html是一个前端的URL

后端接口是否跨域原因http://127.0.0.1:8081/test是端口号不一样http://127.0.0.1:5500/test (如果前端端口和后端端口在同一台机器上,会有端口占用的问题)否https://127.0.0.1:8081/test是协议不一样二、什么是同源策略?(参考百度百科)解决has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’报错跨域问题(解决口苦最快的方法)

当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面

当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,

即检查是否同源,只有和百度同源的脚本才会被执行。

如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。

所以刚刚前端的请求不满足同源策略,所以被浏览器检测出来了,然后报了一个异常。

三、fastapi 跨域解决方案

解决思路就是在后台把前端的”源“加进去即可,其他技术的思路也都差不多。

前端代码(test.html)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> <title>Document</title></head><body> <div id="app"> <input type="button" value="获取后端数据" @click="login"> <h5>{{message}}</h5> </div> <script> var app = new Vue({ el: "#app", data: { message: "你好前后端分离" }, methods: { login: function() { var that = this axios.get("http://127.0.0.1:8081/test") .then(function(response) { console.log(response) that.message = response.data }) } } }) </script></body></html>

后端代码(没有解决跨域app.py)

import uvicornfrom fastapi import FastAPI, Bodyapp = FastAPI()# 模拟服务端test接口@app.get("/test")def get_login(): return "this is fastapiApp"if __name__ == '__main__': # 服务端端口是 8080! uvicorn.run(app="app:app", reload=True, host="127.0.0.1", port=8081)

后端代码(解决跨域问题app.py)

import uvicornfrom fastapi import FastAPI, Body# 1、导入对应的包from fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()# 2、
本文链接地址:https://www.jiuchutong.com/zhishi/287132.html 转载请保留说明!

上一篇:F12-开发者工具常用操作与使用说明之网络network(f12开发者工具调试打不开)

下一篇:关于 Vue “__ob__:Observer“ 属性的解决方案(关于减肥的好方法)

  • 电脑的平板模式是用手点的吗(电脑的平板模式怎么用)

    电脑的平板模式是用手点的吗(电脑的平板模式怎么用)

  • 华为nova5i如何横屏(华为nova5横屏竖屏怎么设置)

    华为nova5i如何横屏(华为nova5横屏竖屏怎么设置)

  • iphone7尾插坏了症状(苹果7p尾插坏了怎么办)

    iphone7尾插坏了症状(苹果7p尾插坏了怎么办)

  • 快充手机充一晚上对手机有影响吗(快充手机充一晚上)

    快充手机充一晚上对手机有影响吗(快充手机充一晚上)

  • 手机关机后微信运动还计步吗(手机关机后微信运动步数还走吗)

    手机关机后微信运动还计步吗(手机关机后微信运动步数还走吗)

  • 表格多选快捷键(表格多选快捷键ctrl加什么,怎么粘贴)

    表格多选快捷键(表格多选快捷键ctrl加什么,怎么粘贴)

  • 小米的其他文件是什么东西(小米的其他文件在哪里)

    小米的其他文件是什么东西(小米的其他文件在哪里)

  • nova7指纹解锁在哪边(nova7指纹功能消失)

    nova7指纹解锁在哪边(nova7指纹功能消失)

  • 东芝a3和v9有什么区别(东芝a3和v9v10哪个产品新)

    东芝a3和v9有什么区别(东芝a3和v9v10哪个产品新)

  • 芒果tv微信会员可不可以两个人用(芒果tv微信会员绑定手机号)

    芒果tv微信会员可不可以两个人用(芒果tv微信会员绑定手机号)

  • 华为p40pro第一次充电充多长时间(华为p40pro第一次充电充多久)

    华为p40pro第一次充电充多长时间(华为p40pro第一次充电充多久)

  • vivoy31手机为什么开不了机(今天vivo手机怎么了)

    vivoy31手机为什么开不了机(今天vivo手机怎么了)

  • 惠普打印机耗材余量错误的原因(惠普打印机耗材内存警告什么意思)

    惠普打印机耗材余量错误的原因(惠普打印机耗材内存警告什么意思)

  • 域名的长度不能超过(域名的长度不能超过多少字符)

    域名的长度不能超过(域名的长度不能超过多少字符)

  • 手机怎么投屏到奇异果(手机怎么投屏到电视上)

    手机怎么投屏到奇异果(手机怎么投屏到电视上)

  • 存储器系统是指(存储器系统由哪些部分组成)

    存储器系统是指(存储器系统由哪些部分组成)

  • 怎么把整个pdf分开(怎样把pdf分成多个)

    怎么把整个pdf分开(怎样把pdf分成多个)

  • ios白包是什么意思啊(app白包是什么)

    ios白包是什么意思啊(app白包是什么)

  • 手机吃鸡怎么调第三人称(手机吃鸡怎么调画质最清晰)

    手机吃鸡怎么调第三人称(手机吃鸡怎么调画质最清晰)

  • 苹果手机没有铃声了怎么办(苹果手机来电没铃声)

    苹果手机没有铃声了怎么办(苹果手机来电没铃声)

  • 微信怎么恢复已删除好友(微信怎么恢复已过期的视频)

    微信怎么恢复已删除好友(微信怎么恢复已过期的视频)

  • 看对方抖音他知道吗(看对方的抖音)

    看对方抖音他知道吗(看对方的抖音)

  • 禁止 input 自动填充(禁止input标签输入)

    禁止 input 自动填充(禁止input标签输入)

  • Linux下载安装RabbitMQ(linux lab安装)

    Linux下载安装RabbitMQ(linux lab安装)

  • 出租房屋转为投资房屋
  • 小规模企业税务登记流程
  • 生产成本科目期末余额反映的是
  • 增值税税控系统技术维护费怎么做账
  • 支付客户劳务费怎么操作
  • 没有发票的福利有哪些
  • 从业人数和资产的关系
  • 建筑行业机械租赁费计入什么科目
  • 无息银行承兑汇票
  • 购买汽车怎么抵扣增值税
  • 代扣代缴企业所得税申报期限
  • 增值税发票没有地址和开户行有效吗
  • 个体工商户营业执照年检
  • 土地租赁合同交不交印花税
  • 跨省非独立核算分公司如何报税
  • 预提工资是什么科目
  • 销售折扣和销售折让的账务处理
  • 固定资产折旧计提完毕怎么处理
  • 进项税额转出多转了怎么办
  • 财务中不能冲销的凭证
  • 收到的支票背书怎么写
  • 小规模纳税人销售自己使用过的物品
  • linux怎么安装使用conda
  • 收到个人所得税退税手续费分录
  • 开发票时已交的税金怎么做帐?
  • 无形资产的摊销方法
  • win10开机强制进入修复模式
  • 编制合并报表的三种理论
  • 留存收益是否计入成本
  • 绿萝怎么养才能爬藤
  • wordpress经典编辑器用法
  • php教程 csdn
  • 固定资产多少可以费用化
  • laravel创建项目
  • 安装winsock
  • 巴黎拉丁区有个著名的人文景点叫做先贤祠
  • 采购材料尚未入库款未付的记账凭证
  • nginx连接超时时间设置多少
  • 微信支付php开发流程
  • uni.getSystemInfo(OBJECT)
  • vue 动态tab
  • 个税系统有什么用
  • php 错误提示
  • 服装加工税率是13%还是16%
  • 财务报表的组成主要包括
  • 发票丢失了怎么报销
  • 企业借款利息计入什么科目
  • mysql密码忘了怎么办?
  • 销售公司扣款制度合法吗
  • 残保金申报可以随便填吗
  • 客户试用产品期间怎么跟进
  • 营改增后,建筑行业与供应商签合同才怎样签没风险?
  • 员工借款可以直接转账吗
  • 消防公司会计分录
  • 跨年退货怎么处理账务
  • 公司研发项目立项
  • 五险一金怎么用呢
  • 企业必须建立哪些制度
  • 明细账设置是什么意思
  • 清空数据库中所有表的数据
  • Win10预览版拆弹
  • wave editor教程
  • fedora系统怎么安装
  • win7系统关机没反应
  • linux eval命令
  • win8应用商店下载
  • kill命令用法
  • jquery animation
  • Node.js Sequelize如何实现数据库的读写分离
  • 怎么重置mysql的密码
  • 安卓中的多线程
  • 微信小程序开发用什么语言
  • 获取input输入值
  • android 图片滚动
  • 深入浅出css
  • 张孝祥西江月
  • 安卓自定义app
  • 旧房转让土地增值税扣除项目
  • 非房地产企业土地增值税
  • 与税务有关的公需课
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号