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

  • 苹果13promax充电器多少瓦(苹果13promax充电慢怎么回事)

    苹果13promax充电器多少瓦(苹果13promax充电慢怎么回事)

  • 华为nova6支持无线充电吗(华为nova6支持无线hicar)

    华为nova6支持无线充电吗(华为nova6支持无线hicar)

  • 此操作要求合并单元格都具有相同大小(此操作要求合并单元格都具有大小)

    此操作要求合并单元格都具有相同大小(此操作要求合并单元格都具有大小)

  • 直播加入购物车后付不了钱(直播加入购物车后怎么购买)

    直播加入购物车后付不了钱(直播加入购物车后怎么购买)

  • 怎么不让别人条件查找(怎么不让别人条微信聊天)

    怎么不让别人条件查找(怎么不让别人条微信聊天)

  • ipad为啥开软件老闪退(ipad所有应用打不开)

    ipad为啥开软件老闪退(ipad所有应用打不开)

  • 网络能连上但上不了网是怎么回事(网络能连上但上不去网)

    网络能连上但上不了网是怎么回事(网络能连上但上不去网)

  • 锐龙r53500u相当于i几(锐龙r53500怎么样)

    锐龙r53500u相当于i几(锐龙r53500怎么样)

  • 微信黑夜模式怎么开(微信黑夜模式怎么转换成白天)

    微信黑夜模式怎么开(微信黑夜模式怎么转换成白天)

  • 手机有ip地址吗(手机改ip地址的软件)

    手机有ip地址吗(手机改ip地址的软件)

  • 华为nova5pro耳机插哪里(华为nova5pro耳机孔在哪里)

    华为nova5pro耳机插哪里(华为nova5pro耳机孔在哪里)

  • 如何删除大众点评私信(如何删除大众点评订单)

    如何删除大众点评私信(如何删除大众点评订单)

  • 为什么隔空投送点不动(为什么隔空投送接收不到)

    为什么隔空投送点不动(为什么隔空投送接收不到)

  • 安卓数据线有几种(安卓数据线有几根线)

    安卓数据线有几种(安卓数据线有几根线)

  • vivoy3怎么开启反向充电(vivo y3怎么设置可以有返回键)

    vivoy3怎么开启反向充电(vivo y3怎么设置可以有返回键)

  • 华为Mate10如何怎么拆机(华为mate10咋样)

    华为Mate10如何怎么拆机(华为mate10咋样)

  • 小米云恢复的照片在哪(小米云恢复数据到手机)

    小米云恢复的照片在哪(小米云恢复数据到手机)

  • 安卓图标大小设置方法(安卓图标如何变大)

    安卓图标大小设置方法(安卓图标如何变大)

  • 拼多多叶子类目定向是什么意思(拼多多叶子类目定向要开吗)

    拼多多叶子类目定向是什么意思(拼多多叶子类目定向要开吗)

  • 手机触屏原理(手机触屏原理200字)

    手机触屏原理(手机触屏原理200字)

  • msvcp140.dll丢失怎样修复?msvcp140.dll重新安装的解决方法(msvcp140.dll丢失怎么办)

    msvcp140.dll丢失怎样修复?msvcp140.dll重新安装的解决方法(msvcp140.dll丢失怎么办)

  • h5适配ios顶部和底部安全区域的问题(h5适配iphonex)

    h5适配ios顶部和底部安全区域的问题(h5适配iphonex)

  • 带你玩转Python爬虫(胆小者勿进)千万别做坏事·······(python爬虫入门教程)

    带你玩转Python爬虫(胆小者勿进)千万别做坏事·······(python爬虫入门教程)

  • 金税盘连接不上电脑是怎么回事
  • 2023年印花税如何计算
  • 进项税额转出时点
  • 向银行借入短期借款偿还前欠货款
  • 关联交易纳税调整期限
  • 出口免税不退税会计分录
  • 企业亏损结转年限举例说明
  • 差旅费报销单是外来原始凭证吗
  • 小规模残疾人交多少税收
  • 高新技术企业费用认定
  • 企业预算管理为何要以企业战略,核心竞争力,风险为导向
  • 4s店收取的金融服务费用
  • 未入账成本
  • 车辆租赁费可以一次性计入费用吗
  • 企业哪些可以抵扣增值税
  • 建筑业预缴附加税分录
  • 零售环节包括哪些
  • 小规模季报利润表本月金额和本年累计金额
  • 公司招聘费属于什么科目
  • 不征税发票的12个税种
  • 个人所得税申报截止时间
  • macbookair重制系统
  • 汽车销售公司取名字参考大全图片
  • PHP:apache_get_version()的用法_Apache函数
  • 一借多贷的会计分录怎么写
  • 增值税怎样计算
  • 布鲁克顿的一只狗叫什么
  • 爱丁堡几点天黑
  • 数据库与缓存不一致解决方案
  • 项目的分包行为是否合理
  • 分次预缴税额怎么算
  • php socket_create
  • asreg命令什么意思
  • 程序员才能看懂的梗
  • html5/css3
  • yolov5源码解读
  • 残疾证哪里发
  • 自产赠送视同销售的成本怎么确定
  • 充话费自定额
  • 每季度报税什么意思
  • 材料发出会计科目
  • 小规模纳税人购进农产品可以抵扣进项税吗
  • 为什么有些网站会自动复制
  • php发邮件系统源码
  • 无票收入后又开票怎么办
  • 专利费用计入什么会计科目
  • 代扣代缴通用缴款书怎么打印
  • 股东权益合计等于净资产吗
  • 免征的增值税如何处理
  • 发票系统维护费怎么算
  • 检测费专用发票会计分录
  • 土地的入账科目
  • 顺风车没有发票是否合法
  • 企业应如何降低消费者
  • 固定资产需要具备的条件
  • 现金日记账需要日清月结吗
  • 小微企业减免附加税税率
  • 什么是投资性房地产具体包括哪些内容
  • 现金日记账月末怎么结账图片
  • 商业企业注销应检查哪方面的问题
  • MySQL5.6下windows msi安装详细介绍
  • mysql基本表
  • mac系统命名规律
  • 如何安装和卸载抖音软件
  • linux批处理文件怎么写
  • win7强制关机后内存不足
  • win10registry
  • 有道词典手机
  • qt opengl obj
  • JavaScript cookie 跨域访问之广告推广
  • 什么叫屏蔽屏幕按键
  • convert fs
  • 苹果macos安装
  • nodejs+ts
  • js赋值input
  • android的事件处理机制
  • 湖南电子税务局官网登录入口首页
  • 深圳国税地税怎么申报
  • 下载广东省电子税务局appp
  • 2021年江苏省考常州职位表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设