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

  • 小米手机按键设置在哪里(小米手机按键设置功能怎么查)

    小米手机按键设置在哪里(小米手机按键设置功能怎么查)

  • 苹果13可以用两个微信吗(苹果13和苹果14哪个好用)

    苹果13可以用两个微信吗(苹果13和苹果14哪个好用)

  • 华为p40地震预警怎么开启(华为p40地震预警不报)

    华为p40地震预警怎么开启(华为p40地震预警不报)

  • 抖音顶部不显示时间(抖音顶部不显示朋友)

    抖音顶部不显示时间(抖音顶部不显示朋友)

  • 电脑版怎么设置自动套用格式(百度网页电脑版怎么设置)

    电脑版怎么设置自动套用格式(百度网页电脑版怎么设置)

  • 小米蓝牙耳机双耳配对(小米蓝牙耳机双耳模式设置)

    小米蓝牙耳机双耳配对(小米蓝牙耳机双耳模式设置)

  • 蓝牙耳机两个怎么分开(蓝牙耳机两个怎么分开连接)

    蓝牙耳机两个怎么分开(蓝牙耳机两个怎么分开连接)

  • iphonexs外壳能给x用吗(iphone xs的手机壳x可以用吗)

    iphonexs外壳能给x用吗(iphone xs的手机壳x可以用吗)

  • ipad怎么打开u盘(ipad怎么打开u盘文件)

    ipad怎么打开u盘(ipad怎么打开u盘文件)

  • 华为p40pro屏幕是哪家生产的(华为p40pro屏幕是昆仑玻璃吗)

    华为p40pro屏幕是哪家生产的(华为p40pro屏幕是昆仑玻璃吗)

  • ipad可以设置使用时间吗(ipad可以设置使用关机时间吗)

    ipad可以设置使用时间吗(ipad可以设置使用关机时间吗)

  • 候补订单退单多久到账(候补退单收费吗)

    候补订单退单多久到账(候补退单收费吗)

  • 华为荣耀20怎么打开人像模式(华为荣耀20怎么隐藏应用)

    华为荣耀20怎么打开人像模式(华为荣耀20怎么隐藏应用)

  • 华为9x像素(华为9x像素怎么设置)

    华为9x像素(华为9x像素怎么设置)

  • 支付宝里的证件照在哪里(支付宝里的证件怎么删除)

    支付宝里的证件照在哪里(支付宝里的证件怎么删除)

  • vue怎么添加多个字幕(vue点击添加多个div)

    vue怎么添加多个字幕(vue点击添加多个div)

  • snapcht是什么(snap是啥意思)

    snapcht是什么(snap是啥意思)

  • 小米2s是3g还是4g(小米2s是3g手机还是4g手机)

    小米2s是3g还是4g(小米2s是3g手机还是4g手机)

  • 手机发热是怎么回事(手机发热是怎么处理)

    手机发热是怎么回事(手机发热是怎么处理)

  • 苹果6怎么把通讯录导入sim卡(苹果6怎么把通讯录导入手机)

    苹果6怎么把通讯录导入sim卡(苹果6怎么把通讯录导入手机)

  • 清晰度3mp是什么意思(清晰度1080p和3mp什么意思)

    清晰度3mp是什么意思(清晰度1080p和3mp什么意思)

  • 文件全选是ctrl加什么(文件全选的快捷方式)

    文件全选是ctrl加什么(文件全选的快捷方式)

  • 小米max2多少钱(小米13pro多少钱)

    小米max2多少钱(小米13pro多少钱)

  • 小米互传在哪(小米互传在哪里看文件)

    小米互传在哪(小米互传在哪里看文件)

  • 滴滴代叫是怎么回事(滴滴代叫怎么操作)

    滴滴代叫是怎么回事(滴滴代叫怎么操作)

  • 哪些企业需要缴纳企业所得税?
  • 农产品进项税额转出怎么算
  • 个人所得税怎么申报退税
  • 取得交易性金融资产投资收益为什么在借方
  • 收到发票未收到款
  • 制作费开票属于什么科目
  • 红字发票抵扣联丢了怎么办
  • 给员工发开门红包的通知
  • 企业将重组债务转为权益工具
  • 属于劳务分包合同
  • 企业所得税工资薪金和个税申报里一致么
  • 待抵扣进项税额是什么情况下用的
  • 小微企业免税销售额和未达起征点销售额区别
  • 纳税人提供植物油的税率
  • 把黑龙江省
  • 报销单据粘贴单图片
  • 定额发票上除了发票章还有其他章吗
  • 水费差额征税税率
  • 汇缴交的所得税如何做账
  • 怎么处理有问题的货物
  • 以前年度多计提的附加税怎么调账
  • 未分配利润怎么消化掉 避开所得税
  • 每月计提的工资包含社保吗
  • 开具信息咨询费的发票
  • 试用产品无法收集
  • 企业所得税分析方法
  • 总公司人员的工资子公司发,如何报税?
  • 冲往年管理费用的账务处理是否涉及所得税
  • linux系统网络日志
  • fontpackages-filesystem
  • intempt
  • 简述php操作mysql数据库的基本步骤
  • 公司从其他公司借个钱怎么做账
  • 莱辛巴赫瀑布在瑞士哪里
  • vue自定义日历组件
  • elemental ui
  • 成本降低率是什么意思
  • vite2.0 vue
  • php+web
  • php页面跳转可以用header
  • 如何在最新版本钉钉上使用支付审申请
  • 税务清单和发票清单是一样吗
  • 专票开户行少写一个字
  • vue3.0用法
  • 增值税专用发票几个点
  • 坏账准备在资产负债表哪里体现
  • 个税出现负数是什么意思
  • SQL Server 2005/2008 导入导出数据常见报错解决方法
  • 息税前利润怎么算出来的
  • 建筑行业如何结算工程款
  • 办公室装修费用怎么入账
  • 专项应付款如何冲减
  • 打车费会计分录怎么写
  • 工程施工科目核算内容
  • 分公司与总公司的责任承担
  • 建筑业简易征收税率5%
  • 个体工商户的公章丢了怎么办
  • 买入返售金融资产 流动资产
  • 大型商业企业
  • mysql里面的索引
  • linux常用小技巧
  • redhat图形化界面启动
  • win10edge浏览器下载被阻止
  • macos high sierra深色模式
  • 重装系统 xp
  • csinject.exe是什么程序的进程 csinject进程是安全的吗
  • win7桌面没有了怎么办
  • linux复制文件命令mv
  • javascript如何
  • jquery warp
  • 第五章推动经济高质量发展心得
  • 江西省国家税务局李德平
  • 农产品初加工有哪些
  • 地税局公务员考试科目
  • 保险专票可以抵进项税吗
  • 福利企业免税有哪些项目
  • 郑州房管局办事大厅预约
  • 税务和海关哪个单位比较好
  • 营业执照网上申报入口官网
  • 新华保险有返本金吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设