位置: IT常识 - 正文

解决前端跨域的几种方法(前端解决跨域问题的8种方案(最新最全))

编辑:rootadmin
解决前端跨域的几种方法

推荐整理分享解决前端跨域的几种方法(前端解决跨域问题的8种方案(最新最全)),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端解决跨域问题的8种方案(最新最全),前端解决跨域问题的8种方案(最新最全),前端解决跨域问题的8种方案(最新最全),前端跨域产生的原因和解决方法,前端跨域问题解决办法,前端解决跨域问题的8种方案(最新最全),解决前端跨域的问题,前端解决跨域的几种办法,内容如对您有帮助,希望把文章链接给更多的朋友!

一、跨域报错

        在我们实际开发过程中,都有遇到过跨域的问题,跨域报错如下:

二、为什么会报跨域?

        跨域的本质是浏览器基于同源策略的一种安全手段,主要是考虑到用户的信息安全。何为同源策略呢?同源策略是一种约定,它是浏览器最核心也最基本的安全功能。所谓同源(即指在同一个域)具有以下三个相同点:协议相同、域名相同、端口相同。

        反之非同源请求,也就是协议、端口、主机其中一项不相同的时候,这时候就会产生跨域。跨域是浏览器的限制,拦截的是响应而非请求。我们用抓包工具抓取接口数据,可以看到接口已经把数据返回来了,只是由于浏览器的限制我们获取不到数据。另外,并不是所有的跨域都会有问题,只有ajax和fetch产生的跨域才会被浏览器限制。

三、如何解决跨域?

(1)JSONP

        JSONP是一种比较古老的解决方案,这种方案没有兼容性问题,基本都可以使用,但是它所解决的问题比较有限,且对服务端接口有一定的要求,只支持get请求,不支持post,请求回来的东西当做js来执行。

        原理:JSONP本质上使用的是script标签的src属性,该标签有跨域请求资源的能力,且请求的资源类型是js脚本。也就是说,我们需要在服务器给返回一段js脚本,并且把要返回给前端的数据加入到这段js脚本中。在浏览器端执行这段脚本,从而达到获取数据的目的。

解决前端跨域的几种方法(前端解决跨域问题的8种方案(最新最全))

(2)CORS

        CORS是 W3C 标准,属于跨源 ajax请求的根本解决方法。CORS 规范中,清楚定义了跨域存取控制的运作方式。首先,服务端需要在响应头中加上如Access-Control-Allow-Origin、Access-Control-Request-Method、Access-Control-Request-Headers 等设定,来限制服务器所能接受的来源、请求的方法、可携带的头等等。

        当浏览器发送资源请求时,如果是简单请求便会直接送出请求;若不符合前述条件,则会通过预检请求,确认是否可以通过服务器的限制,然后才会发送正式的请求。

        简单说,该方法只需要直接让后端设置响应头,允许资源共享就ok了,前端不需要做额外修改。

(3)Proxy

        浏览器是禁止跨域的,但是服务端不禁止。拿Vue项目说,在本地运行npm run dev等命令时实际上是用node运行了一个服务器,因此proxyTable实际上是将请求发给自己的服务器,再由服务器转发给后台服务器,做了一层代理,因此不会出现跨域问题。

        Vue-cli脚手架, 就启动了一个webpack开发服务器, 它就能做代理转发,我们只需要修改webpack开发服务器的配置即可。

Vue.config.js:

        总结一下就是,在前端服务和后端接口服务之间 架设一个中间代理服务,它的地址保持和前端服务一致,那么,代理服务和前端服务之间由于协议、域名、端口三者统一不存在跨域问题,可以直接发送请求;代理服务和后端服务之间由于并不经过浏览器,没有同源策略的限制,也可以直接发送请求。这样,我们就可以通过中间这台服务器做接口转发,在开发环境下解决跨域问题,看起来好像挺复杂,其实vue-cli已经为我们内置了该技术,我们只需要按照要求配置一下即可。

当然,解决跨域的方法不止这些,比如nginx反向代理等方式也可以解决跨域问题。大家可以结合实际采取最简洁方便的方式。

本文链接地址:https://www.jiuchutong.com/zhishi/295684.html 转载请保留说明!

上一篇:19个可用的天气和气候数据集(有哪些天气软件)

下一篇:【HTML】HTML网页设计----动漫网站设计(html的网址)

  • iphone备忘录永久删除怎么恢复(iphone备忘录永久删除恢复软件免费)

    iphone备忘录永久删除怎么恢复(iphone备忘录永久删除恢复软件免费)

  • dwg格式文件用什么软件打开(dwg格式文件用什么软件打开电脑)

    dwg格式文件用什么软件打开(dwg格式文件用什么软件打开电脑)

  • 抖音无效视频怎么解决(抖音无效视频怎么取消掉)

    抖音无效视频怎么解决(抖音无效视频怎么取消掉)

  • 闲鱼怎么开通消费者保障服务(闲鱼怎么开通消费者权益)

    闲鱼怎么开通消费者保障服务(闲鱼怎么开通消费者权益)

  • qq直播间可以分享屏幕吗(qq直播吗)

    qq直播间可以分享屏幕吗(qq直播吗)

  • 小米手表同步失败

    小米手表同步失败

  • 快手退货时要先确认收货吗(在快手退货需要商家同意吗)

    快手退货时要先确认收货吗(在快手退货需要商家同意吗)

  • 苹果手机建议换电池吗(苹果手机建议换第三方电池吗)

    苹果手机建议换电池吗(苹果手机建议换第三方电池吗)

  • 微信号限制登录是怎么回事(微信号限制登录可解封是什么意思)

    微信号限制登录是怎么回事(微信号限制登录可解封是什么意思)

  • 视频彩铃怎么制作(怎么做视频彩铃)

    视频彩铃怎么制作(怎么做视频彩铃)

  • protected和private区别(protected和private区别java)

    protected和private区别(protected和private区别java)

  • iphone11摔了一下会影响硬件吗(iPhone11摔了一下面容不能用)

    iphone11摔了一下会影响硬件吗(iPhone11摔了一下面容不能用)

  • 淘宝卖家钱多久到账(淘宝卖家多久能收到买家的钱)

    淘宝卖家钱多久到账(淘宝卖家多久能收到买家的钱)

  • 蓝牙耳机降噪和不降噪的区别(蓝牙耳机降噪和不降噪哪个好)

    蓝牙耳机降噪和不降噪的区别(蓝牙耳机降噪和不降噪哪个好)

  • mac初始密码是多少(mac初始密码是多少 名称是mac)

    mac初始密码是多少(mac初始密码是多少 名称是mac)

  • 苹果8p怎么轻触亮屏(苹果8p轻触home键两次)

    苹果8p怎么轻触亮屏(苹果8p轻触home键两次)

  • 手机qq怎么查多少人特别关心我(手机qq怎么查多年的好友)

    手机qq怎么查多少人特别关心我(手机qq怎么查多年的好友)

  • 小米cc9是什么处理器(小米cc9手机评测)

    小米cc9是什么处理器(小米cc9手机评测)

  • wps装订线怎么设置(wps2019装订线怎么设置)

    wps装订线怎么设置(wps2019装订线怎么设置)

  • ios13更新了什么(iphone13系统更新了什么)

    ios13更新了什么(iphone13系统更新了什么)

  • 用于电子邮件的协议是(用于电子邮件email传输控制的是)

    用于电子邮件的协议是(用于电子邮件email传输控制的是)

  • iphone11如何关机(iphone11如何关机清理内存)

    iphone11如何关机(iphone11如何关机清理内存)

  • 苹果闪光灯测心率(苹果手机闪光灯能量体温吗)

    苹果闪光灯测心率(苹果手机闪光灯能量体温吗)

  • 三个数排序(三个数排序c语言程序从大到小)

    三个数排序(三个数排序c语言程序从大到小)

  • 浙江增值税专用发票几个点
  • 福建税务网上办税流程
  • 未开具的增值税专用发票怎么作废
  • 场地使用费入什么科目
  • 合伙人没有账目就说赔了合法吗
  • 公司账户被法院冻结了多久可以恢复
  • 营改增后,建筑安装工程的费率是
  • 土增税清算地下室怎么扣除
  • 牛奶公司饲养奶牛生产牛奶
  • 转让房产的单位和个人都需要缴纳契税吗?
  • 出口货物退运管理办法
  • 私车公用违规吗
  • 银行电子回单号码什么意思
  • 计提租金分录怎么处理
  • 个人合伙企业有没有企业所得税
  • 商品房买卖合同预售和商品房买卖合同有什么区别
  • 企业所得所得税税负
  • 生产车间修理用材料计入
  • 外帐如何暂估应付账款
  • 预付账款收不到发票怎么冲账
  • 小规模需要交所得税吗
  • 公司商品房出售流程
  • 2021剑灵什么职业最强
  • 电脑网页游戏打不开了怎么办
  • 什么是债券持有人
  • 预收账款调增应纳税所得额
  • 财政总预算会计科目
  • Python之ImportError: DLL load failed: 找不到指定的模块解决方案
  • 企业财产租赁税率
  • 企业的存货按照计划成本核算,期初
  • 支付的招标代理费计入成本还是费用
  • notion all in one
  • nvm切换node版本后node -v报错
  • 社保基数怎么申请下调
  • 计算机中的意思和含义
  • reactjs.org
  • RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
  • 担保公司的风险准备金在报表中如何反应
  • 汇票贴现是什么
  • 对公账户一直没有对账,会有什么后果吗?
  • 劳动仲裁赔偿款会计分录
  • 小规模纳税人适用什么会计准则
  • 豆制品属于农副产品吗为什么
  • 建筑公司工程款税率
  • 2019年无形资产的摊销额为
  • 固定资产提前报废当月计提折旧吗
  • 买赠销售账务处理
  • 员工退回备用金怎么写收据
  • 以资抵债如何实现债权和物权的转
  • 上个月的发票未开具
  • 小规模纳税人已付款对方不开发票几年了会计分录
  • 增值税进项税加计抵减
  • 代理记账公司都是假账么
  • 哪些账簿可以跨市登记
  • sql语句优化总结
  • debian系统如何安装软件
  • macbookair安装rosetta
  • storm run off
  • 怎么配置命令
  • win7中文显示问号
  • win8取消开始界面
  • ssh客户端软件
  • win8.0下载
  • 12个超实用的JQuery代码片段
  • 浅析科学发展观的核心立场
  • linux程序打包和安装
  • 超级链接是什么意思
  • css中如何设置图片大小
  • shell脚本if用法
  • unity协程的工作原理
  • jquery的循环
  • javascript零基础
  • animate怎么整个图层移动
  • JavaScript中的6种运算符总结
  • jQuery UI Bootstrap是什么?
  • java图像对比
  • 临沂国税地税局领导班子
  • 电子税务局新户报道怎么弄
  • 成品油消费税税目
  • 国家实行什么制度鼓励电力用户合理调整用电负荷
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设