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

  • 企业查询工商注册信息方法

    企业查询工商注册信息方法

  • 微信语音来电不弹窗了怎么办(微信语音来电不显示怎么设置)

    微信语音来电不弹窗了怎么办(微信语音来电不显示怎么设置)

  • 拼多多怎么不让好友看到我的拼单(拼多多怎么不让别人看你的评价)

    拼多多怎么不让好友看到我的拼单(拼多多怎么不让别人看你的评价)

  • r9 270x相当于什么n卡(r9270x相当于n卡什么水平)

    r9 270x相当于什么n卡(r9270x相当于n卡什么水平)

  • 充电宝可以修吗(怎么给充电宝充电)

    充电宝可以修吗(怎么给充电宝充电)

  • 抖音号永久封禁还能解封吗(怎么让抖音号永久封禁)

    抖音号永久封禁还能解封吗(怎么让抖音号永久封禁)

  • 华为的本地音乐在哪找(华为的本地音乐在哪里添加)

    华为的本地音乐在哪找(华为的本地音乐在哪里添加)

  • 屏幕录制失败因为5823是什么原因(屏幕录制失败因为无法处理第一个样本)

    屏幕录制失败因为5823是什么原因(屏幕录制失败因为无法处理第一个样本)

  • 抖音未认证是什么意思(抖音未认证是什么原因)

    抖音未认证是什么意思(抖音未认证是什么原因)

  • vivox21是不是全面屏(vivox20是全面屏吗)

    vivox21是不是全面屏(vivox20是全面屏吗)

  • 华为平板m6可以插电话卡吗(华为平板m6可以插卡吗)

    华为平板m6可以插电话卡吗(华为平板m6可以插卡吗)

  • 手机电量低就卡怎么办(手机耗电量太快怎么解决)

    手机电量低就卡怎么办(手机耗电量太快怎么解决)

  • 苹果11铃声怎么调大(苹果11铃声怎么设置自己的歌不用库乐队)

    苹果11铃声怎么调大(苹果11铃声怎么设置自己的歌不用库乐队)

  • vivoz5x怎么设置呼吸灯(vivoz5x怎么设置双系统)

    vivoz5x怎么设置呼吸灯(vivoz5x怎么设置双系统)

  • 苹果手机的诊断与用量在哪(苹果手机的诊断日志电池)

    苹果手机的诊断与用量在哪(苹果手机的诊断日志电池)

  • uc不支持打开该文件怎么办(uc不支持打开该文件)

    uc不支持打开该文件怎么办(uc不支持打开该文件)

  • 抖音删除评论对方有提示吗(抖音删除评论对方回复的会被删吗)

    抖音删除评论对方有提示吗(抖音删除评论对方回复的会被删吗)

  • 手机爱奇艺怎么去广告(手机爱奇艺怎么投屏到电脑上)

    手机爱奇艺怎么去广告(手机爱奇艺怎么投屏到电脑上)

  • 2g卡能上4g网络吗(2g的手机卡能用4g的手机吗)

    2g卡能上4g网络吗(2g的手机卡能用4g的手机吗)

  • iphonexr不能设置动态壁纸吗(苹果xr为什么设置不了以前的密码)

    iphonexr不能设置动态壁纸吗(苹果xr为什么设置不了以前的密码)

  • 闪送如何开发票

    闪送如何开发票

  • 手机总是自动打开软件(手机总是自动打开NFC)

    手机总是自动打开软件(手机总是自动打开NFC)

  • qq面板在哪里打开(qq面板系统设置在哪里)

    qq面板在哪里打开(qq面板系统设置在哪里)

  • python中series转dataframe的两种方法(series转换为dataframe)

    python中series转dataframe的两种方法(series转换为dataframe)

  • 一分钟了解货币
  • 六税两费都包括哪些税费种?
  • 甲方应项目具备开工条件
  • 怎么快速金蝶数据入库
  • 企业外币账户怎么开通
  • 报关单上消费使用单位可以交税么
  • 银行承兑汇票手续费是多少
  • 简易计税的销项税怎么处理
  • 超市销售购物卡怎么开票
  • 应收款确认坏账分录
  • 收到承兑汇票作废怎么办
  • 收到对方开的发票怎么做账
  • 新注册的公司什么时候可以开票纳税
  • 已过认证周期什么意思
  • 营业成本主要包括
  • 如何理解增值税的三种类型?它们的区别是什么?
  • 小企业的费用应当在发生时计入当期损益
  • 购入土地建厂房要交的税
  • 读会计没有考到证 能出来干什么
  • 土地使用权转让协议
  • 报考中级会计的工作证明
  • 没收到电费账单怎么办
  • 租赁合同法律风险
  • 跨年的发票冲红
  • mac环境搭建
  • 【修改huggingface transformers默认缓存文件夹】
  • 我的世界1.12.2优化下载
  • macOS Big Sur 11.3 公开测试版正式推送(附更新内容)
  • php关键字的意思
  • h5响应式布局是什么
  • 公司出租房屋如何给对方单位开发票
  • typescript ??
  • 在双方发生纠纷时品牌授权书的法律意义
  • 车船税不计提怎么做分录
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)
  • 盒子模型的概念
  • 公司开具了电子发票
  • 企业的职工福利费应当按照应付工资总额的14%计提
  • 什么是累积优先股
  • python的基本风格
  • 开票是否享受优惠
  • 资产负债表和利润表的勾稽关系
  • sql数据库降低版本
  • 发行股份的原则
  • 出口退税计入
  • 财政应返还额度账务处理
  • 哪类企业是可以避税的
  • 实收资本需要明细科目吗
  • 劳务派遣公司收入确认税收政策
  • 预付账款货物到了之后怎么入账
  • 疫情期间减免的六大行业
  • 小规模纳税人开专票需要交税吗
  • 综合所得的个人所得税有哪些筹划技巧
  • 新成立的公司购买的家具可以计入主营业务成本吗
  • 公司如何做账本
  • 长期待摊费用如何做账
  • 发票丢失如何处理入账
  • 事业单位会计岗位属于哪一类
  • 借款费用应如何入账
  • 数据库性能优化方法论和最佳实践
  • mysql的join有几种
  • windowsxp锁屏密码怎么设置
  • windows2003服务不能开启
  • centos文件备份
  • linux中vi替换
  • win10多任务视图不排序怎么设置
  • 冰球撞人犯规吗
  • node.js操作
  • jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
  • python最优化
  • javascript基本语句
  • CLASS_CONFUSION JS混淆 全源码
  • 安卓开发速成
  • 税务局监制的收据哪里买
  • 增值税申报表如何导出
  • 江苏电子税务局客服电话
  • 国考报四川的去哪考
  • 差额征税差额开票怎么理解
  • 税务违法怎么处理
  • 2015年购买15万元排量2.0的新车购置税怎么计算?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设