位置: 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的网址)

  • 网店推广的方式多种多样(网店怎么运营和推广)

    网店推广的方式多种多样(网店怎么运营和推广)

  • 荣耀x10能用4g卡吗(荣耀x10可插几张卡)

    荣耀x10能用4g卡吗(荣耀x10可插几张卡)

  • 小米8se充电提示充电口过热(小米8充电提示灯一直闪)

    小米8se充电提示充电口过热(小米8充电提示灯一直闪)

  • 抖音如何让别人下载不了我的视频(抖音如何让别人搜索不到自己)

    抖音如何让别人下载不了我的视频(抖音如何让别人搜索不到自己)

  • excel降序排列怎么操作(excel降序排列怎么操作rank)

    excel降序排列怎么操作(excel降序排列怎么操作rank)

  • 抖音的垂直度是什么意思(抖音的垂直度是和内容有关还是和话题有关)

    抖音的垂直度是什么意思(抖音的垂直度是和内容有关还是和话题有关)

  • 双屏收银机外屏不显示(双屏收银机外屏怎么设置)

    双屏收银机外屏不显示(双屏收银机外屏怎么设置)

  • 网络适配器选项不见了(网络适配器选项空白)

    网络适配器选项不见了(网络适配器选项空白)

  • 手机QQ为什么换手机登录不了(手机QQ为什么换不了头像)

    手机QQ为什么换手机登录不了(手机QQ为什么换不了头像)

  • 拼多多没有拼单成功的怎么退款(拼多多没有拼单但付款成功会不会发货)

    拼多多没有拼单成功的怎么退款(拼多多没有拼单但付款成功会不会发货)

  • 美团综合评分不足怎么恢复(美团综合评分不足是征信不好吗)

    美团综合评分不足怎么恢复(美团综合评分不足是征信不好吗)

  • oppor17和r17pro区别(oppor17和r17pro区别图片)

    oppor17和r17pro区别(oppor17和r17pro区别图片)

  • 华为p30保修期多久(华为p30 保修期)

    华为p30保修期多久(华为p30 保修期)

  • 没机箱怎么开机(没机箱怎么开电脑)

    没机箱怎么开机(没机箱怎么开电脑)

  • ps左边工具栏怎么恢复(ps左边工具栏怎么全部显示出来)

    ps左边工具栏怎么恢复(ps左边工具栏怎么全部显示出来)

  • 计算器上的cnc键代表什么(计算器上键的介绍及使用)

    计算器上的cnc键代表什么(计算器上键的介绍及使用)

  • 手机京东在哪里加好友(手机京东在哪里切换账号)

    手机京东在哪里加好友(手机京东在哪里切换账号)

  • vivoy97虚拟按键在哪里(vivoy66虚拟按键)

    vivoy97虚拟按键在哪里(vivoy66虚拟按键)

  • 新版Edge浏览器开启“标签页关闭控制器”功能(新版edge浏览器兼容模式怎么设置)

    新版Edge浏览器开启“标签页关闭控制器”功能(新版edge浏览器兼容模式怎么设置)

  • 向日葵上的金翅雀,美国南卡罗来纳州 (© Teresa Kopec/Getty Images)(向日葵茎上有刺吗)

    向日葵上的金翅雀,美国南卡罗来纳州 (© Teresa Kopec/Getty Images)(向日葵茎上有刺吗)

  • 如何用css选择器选中某个类的第一个元素(css选择器 菜鸟教程)

    如何用css选择器选中某个类的第一个元素(css选择器 菜鸟教程)

  • 换了公司后个税还要申请申报吗
  • 协定税率的简称
  • 专用发票超过360天认证期怎么办?
  • 审计调整分录要在金蝶调吗
  • 民办非企业捐赠承诺书
  • 私车公用报销油费
  • 会计准则哪些科目变化最大
  • 建筑业工人工资保障
  • 国税征收项目有哪些
  • 事假扣薪
  • 个人所得税没有税也要申报吗
  • 中标服务费可以抵扣进项税吗
  • 用银行存款缴纳各种税费所引起的变动为
  • 应交增值税出口退税科目怎么结平
  • 公司支付劳务派遣人员工资账务处理
  • 公司购买商业保险如何入账
  • 自产房产部分出租后的房产税怎么交?
  • 库存商品的进项可以抵扣吗
  • 固态被锁了
  • 公司收到政府科技创新奖
  • 可作为税前扣除的项目有
  • PHP:Memcached::decrementByKey()的用法_Memcached类
  • 微软win11预览版
  • 备抵法是什么科目
  • 合并报表期初数可以直接抄上年数吗
  • 解决的英文
  • php curl_init
  • 男人喜欢什么样的女人最容易动心
  • 什么情况下计提信用减值损失
  • 优先股转化
  • php输入月份输出天数
  • php用户登录界面
  • php时间函数用法代码
  • vue display
  • 三类职业指的是什么
  • php判断数据类型
  • 会务费如何入账
  • 税控盘技术服务费抵扣期限
  • 科技公司技术服务费税率
  • 没有发票可以先入费用科目吗
  • 保税仓发货的商品退货要承担税吗
  • 结转销售成本的凭证需要附件吗
  • 二手车置换新车需要什么手续
  • 汇总记账凭证会计核算形式下总分类账账页格式一般采用
  • 股东借款如何认定为出资
  • 固定资产清理后折旧怎么处理
  • 期间费用逐年上升说明什么
  • 电商的成本构成包括
  • 税款返点如何做账务处理
  • 重大水利工程建设
  • 库存商品用于研发分录
  • 从公账提取备用金到个人账户怎么做会计分录
  • 研发支出是科目吗
  • 小规模纳税人公户转私户可以吗
  • 经营性应付项目减少对经营活动现金
  • 流动比率多少合理
  • 材料物资核算应由谁负责
  • win7开机提示由于启动计算机时出现页面文件
  • ubuntu20.0.4安装
  • win8.1无法安装
  • windows10新功能
  • win10系统的设备管理器在哪里
  • win7系统在那个文件夹
  • win10超级按钮
  • win8无法关机一直转圈
  • linux网络聚合
  • NGUI的UIScrollview的优化
  • opengl裁剪平面
  • 下列有关javascript中call和apply
  • mongo 安装
  • js单线程多线程
  • linux流量监测工具
  • 怪物掉落物品的获取方式
  • jquery?
  • nodejs集成sqlite使用示例
  • android布局教程
  • 考察后多久公示公务员
  • 出口发票与报关单名称不一致影响退税吗
  • 广州市税务局长
  • 姓名章加不加印字
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设