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

  • 关于QQ营销之推广策划经验(qq营销推广方法和手段)

    关于QQ营销之推广策划经验(qq营销推广方法和手段)

  • 钉钉外勤打卡怎么打呢(钉钉外勤打卡怎么取消)

    钉钉外勤打卡怎么打呢(钉钉外勤打卡怎么取消)

  • 小米云备份可以删除吗(小米云备份可以备份应用数据吗)

    小米云备份可以删除吗(小米云备份可以备份应用数据吗)

  • ipadmini6如何分屏(ipad mini1怎么分屏)

    ipadmini6如何分屏(ipad mini1怎么分屏)

  • 荣耀20Pro悬浮球怎么关闭(华为荣耀20pro悬浮球)

    荣耀20Pro悬浮球怎么关闭(华为荣耀20pro悬浮球)

  • 双重认证查找定位会提示吗(开启双重认证怎么查找位置)

    双重认证查找定位会提示吗(开启双重认证怎么查找位置)

  • 快手自动识别字幕失败怎么办(快手自动识别字幕的软件有哪款不花钱)

    快手自动识别字幕失败怎么办(快手自动识别字幕的软件有哪款不花钱)

  • 拼多多退货多了会对买家影响信誉吗(拼多多退货多了对买家有影响吗)

    拼多多退货多了会对买家影响信誉吗(拼多多退货多了对买家有影响吗)

  • 企业微信打卡伪装定位会被发现吗(企业微信打卡伪装定位 免费)

    企业微信打卡伪装定位会被发现吗(企业微信打卡伪装定位 免费)

  • 对象不支持login属性或方法(对象不支持login属性或方法win10)

    对象不支持login属性或方法(对象不支持login属性或方法win10)

  • 荣耀v30有没有呼吸灯(华为荣耀v30怎么设置呼吸灯)

    荣耀v30有没有呼吸灯(华为荣耀v30怎么设置呼吸灯)

  • iphone震动声音滋滋声(iphone震动声音滋滋声修一下多少钱)

    iphone震动声音滋滋声(iphone震动声音滋滋声修一下多少钱)

  • 拒绝服务攻击有哪些(常见的拒绝服务攻击有)

    拒绝服务攻击有哪些(常见的拒绝服务攻击有)

  • apple应用程序支持64位可以卸载吗(apple应用程序支持可以卸载吗)

    apple应用程序支持64位可以卸载吗(apple应用程序支持可以卸载吗)

  • 苹果新机自带保护膜吗(苹果自带的保修是多久)

    苹果新机自带保护膜吗(苹果自带的保修是多久)

  • 快手改名上限怎么解除(快手改名字上限了怎么办)

    快手改名上限怎么解除(快手改名字上限了怎么办)

  • 连续包月可以只用一个月吗(连续包月可以只用一个月就取消吗百度网盘)

    连续包月可以只用一个月吗(连续包月可以只用一个月就取消吗百度网盘)

  • 大众点评商家怎么上传照片(大众点评商家怎么上团购)

    大众点评商家怎么上传照片(大众点评商家怎么上团购)

  • word怎么设置独立一节(word怎么设置独立页码)

    word怎么设置独立一节(word怎么设置独立页码)

  • 苹果手机信号出现1x(苹果手机信号出现LTE是什么意思)

    苹果手机信号出现1x(苹果手机信号出现LTE是什么意思)

  • 4g手机5g卡能用5g网络吗(4g卡用5g手机可以用5g网络吗)

    4g手机5g卡能用5g网络吗(4g卡用5g手机可以用5g网络吗)

  • oppor15到底防不防水(oppo r15防不防水)

    oppor15到底防不防水(oppo r15防不防水)

  • 增值税金税盘开票的结论
  • 租办公室自己装修可以拆走吗
  • 固定资产清理费用计入哪里
  • 自己开车差旅费报销流程怎么写
  • 技术服务费3%
  • 微信小程序需要授权怎么设置
  • 企业财务发工资流程
  • 所得税申报表中的资产总额如何填
  • 体检怎么写公司抬头
  • 企业的固定资产有何特征
  • 在筹建期间的费用属于什么
  • 预付绩效工资是什么意思
  • 固定资产入错账套怎么做账
  • 填报企业所得税资产总额怎么填
  • 企业弥补亏损的三个途径
  • 发票已认证对方起诉有效吗
  • 外贸企业运输费用占总成本比例
  • 房地产经常发生的法律问题
  • 年终奖个人所得税怎么扣
  • 收回应收账款资产为什么不变
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 出口退税系统中的出口货物已补税未退税证明怎么填
  • 委托贷款利息收入怎么开发票
  • 企业其他应付款增加说明什么
  • MAC系统如何卸载重装安装W7系统
  • win 11 发布
  • 主营业务收入科目应按什么进行明细核算
  • 在win7中如何找到WAN服务
  • 交增值税还交营业税吗
  • 非正常损失会计利润调整
  • 坎伯兰森林西部
  • 明细分类账户定义
  • 坏账损失属于或有事项吗
  • 公司与公司的往来款清帐需要交税吗
  • 2021年前端面试
  • vue中created和mounted
  • 出口退税附加税的计税基础
  • 增值税期末留抵退税
  • 汇算清缴退税的账务处理
  • 茶叶开增值税专用发票,不在申报系统的农副产品类
  • 用于职工福利的进项税账务处理
  • 原材料月底结转到制造费用吗
  • 个别计价法和先进先出法的相同点
  • 增值税专用发票丢了怎么补救
  • 产业增加值是增长量吗
  • 业务招待费的列支范围
  • 一般纳税人开普票税率是3%还是13%
  • 科研经费的间接费用会审核吗
  • 购买的税控盘可以全额抵扣,怎么报
  • 企业票据贴现属于什么业务
  • 个人垫付的费用如何向单位报销行政单位
  • 复利现值系数和复利终值系数
  • 律师的行业
  • 营业外支出贷方余额
  • windows下启动mysql的命令是什么
  • mysql数据库基础与实践课后答案
  • icloud win10
  • windows service 2008 r2
  • 在linux系统中安装软件
  • win8怎么彻底删除软件
  • ubuntu12.04.5安装教程
  • centos6.5安装步骤
  • Mac应用程序的格式
  • win8关机键怎么添加到开始菜单
  • Python中lambda的作用
  • javascript 作用域
  • jquery绑定keyup
  • unity编辑工具软件介绍
  • js实现盒子移动
  • nodejs python交互
  • 基于android开发
  • 手机关卡类游戏
  • java在android上运行
  • javascript中array的正确写法
  • 金税盘显示证书口令错误
  • 福州房管局网签查询
  • 票据贴现的票据是什么
  • 简述纳税人与负税的区别
  • 税务局监控个人账户流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设