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

  • 饿了么怎么查看浏览足迹(饿了么怎么查看对骑手的评价)

    饿了么怎么查看浏览足迹(饿了么怎么查看对骑手的评价)

  • 小黑盒买的cdkey在哪(小黑盒买的cdkey安全吗)

    小黑盒买的cdkey在哪(小黑盒买的cdkey安全吗)

  • 华为如何格式化手机(华为如何格式化储存卡)

    华为如何格式化手机(华为如何格式化储存卡)

  • 为什么qq字体换了显示不出来(为什么qq的字体变了)

    为什么qq字体换了显示不出来(为什么qq的字体变了)

  • 抖音实名认证后支付宝安全吗(抖音实名认证后怎么取消)

    抖音实名认证后支付宝安全吗(抖音实名认证后怎么取消)

  • 苹果xr自拍镜像怎么设置(苹果xr自拍镜像功能能不能调过来)

    苹果xr自拍镜像怎么设置(苹果xr自拍镜像功能能不能调过来)

  • 台式电脑喇叭没声音(台式电脑喇叭没声音耳机有声音)

    台式电脑喇叭没声音(台式电脑喇叭没声音耳机有声音)

  • 电脑平均值公式怎么用(电脑平均值公式怎么算)

    电脑平均值公式怎么用(电脑平均值公式怎么算)

  • 支付宝地区怎么修改(支付宝地区怎么隐藏)

    支付宝地区怎么修改(支付宝地区怎么隐藏)

  • 换屏后指纹不能用了怎么办(换屏后指纹不能用了)

    换屏后指纹不能用了怎么办(换屏后指纹不能用了)

  • 云上压缩是什么软件(云上压缩是啥)

    云上压缩是什么软件(云上压缩是啥)

  • iphonexsmax重量是多少克(苹果xsmax实际重量)

    iphonexsmax重量是多少克(苹果xsmax实际重量)

  • 网卡插在哪个插槽(网卡插在哪个插孔)

    网卡插在哪个插槽(网卡插在哪个插孔)

  • 手机突然扫二维码模糊(手机扫二维码没反应)

    手机突然扫二维码模糊(手机扫二维码没反应)

  • 华为p40pro上市时间(华为p40pro上市时间及价格参数)

    华为p40pro上市时间(华为p40pro上市时间及价格参数)

  • 原相机曝光怎么开(原相机曝光怎么开华为)

    原相机曝光怎么开(原相机曝光怎么开华为)

  • 数据库系统阶段的主要特点(数据库系统阶段的数据管理有什么特点)

    数据库系统阶段的主要特点(数据库系统阶段的数据管理有什么特点)

  • 手机可以投屏到笔记本电脑上吗(手机可以投屏到小度吗?)

    手机可以投屏到笔记本电脑上吗(手机可以投屏到小度吗?)

  • 多媒体和电视的区别在于(多媒体和电视的区别在于什么)

    多媒体和电视的区别在于(多媒体和电视的区别在于什么)

  • 手机支付宝怎么账户余额支付(手机支付宝怎么注销账号)

    手机支付宝怎么账户余额支付(手机支付宝怎么注销账号)

  • 手机wps怎么添加附件(手机wps怎么添加图片)

    手机wps怎么添加附件(手机wps怎么添加图片)

  • vivo照片回收站在哪里(vivo照片回收站删除了怎么找)

    vivo照片回收站在哪里(vivo照片回收站删除了怎么找)

  • 税控盘锁死了怎么办(税控盘锁死是什么意思)

    税控盘锁死了怎么办(税控盘锁死是什么意思)

  • oppo手机怎么设置锁屏时间(oppo手机怎么设置返回键)

    oppo手机怎么设置锁屏时间(oppo手机怎么设置返回键)

  • mssvr.exe - mssvr是什么进程 什么用

    mssvr.exe - mssvr是什么进程 什么用

  • vue 关于清除浏览器全部cookie的问题及解决方法(绝对有效)(vue如何销毁页面)

    vue 关于清除浏览器全部cookie的问题及解决方法(绝对有效)(vue如何销毁页面)

  • 还有什么技术
  • 国家税务登记证是什么样子的
  • 应税和课税是什么意思
  • 收客户刷卡手续费时客户不愿意缴费,如何处理
  • 建筑企业印花税的计税依据
  • 长期待摊费用影响什么
  • 2019年新注册公司
  • 2018年度企业所得税税率表
  • 用友工资系统参数设置
  • 工资薪金所得应纳税所得额
  • 金税三期会查之前的票吗
  • 受托加工怎么做账
  • 固定资产盘盈盘亏的会计科目
  • 收到福利费会计分录
  • 银行本票通俗
  • 税控盘全额抵扣怎么做账
  • 生活服务的发票可以报销吗
  • 资产负债率70%说明长期偿债能力
  • 如何开锅
  • 货物装卸过程中由于操作不当或违反操作规程
  • 进口货物的企业有哪些
  • 期间费用年末结转
  • 合伙企业财产清算顺序
  • 给客户样品需要收钱吗
  • 准备购买材料会计分录
  • 帮公司垫付的钱怎么要
  • vue3 超好用的富文本编辑器
  • 发票开错的常见情况和处理办法?
  • cuda运行环境
  • 原版锯齿
  • 支付的食堂费用怎么入账
  • 个人独资企业如何做账
  • diffusion扩散模型训练时间
  • 基于YOLOv5的中式快餐店菜品识别系统
  • 机器学习分类算法之XGBoost(集成学习算法)
  • php无限级分销
  • 增值税减免附加税用计提吗
  • 水利建设税根据什么申报
  • 研发费用资本化可以加计扣除吗
  • 公司租入厂房怎么做账
  • 苹果cms仿站教程
  • 坏账准备计提额怎么计算
  • 固定资产清理是什么科目
  • 社保所属期怎么填
  • 缴纳残保金工资是实发工资还是应发工资
  • 银行存款属于其他收益吗
  • 发票可否盖财务章
  • 同一控制下的长投入账价值按什么计算
  • 销售退回的会计分录全过程
  • 库存现金余额过大的风险
  • 可供出售金融资产包括哪些内容
  • 招待费如何做账科目
  • 生物性资产折旧处理
  • sql注入神器
  • sql只能查询数据,不能修改数据
  • 如何彻底关闭mac电脑app
  • xp操作系统还能用吗
  • 无法识别的选项
  • 如何设置电脑开机密码
  • xboxone系统更新错误
  • linux的curl
  • 文科生也能看懂的电子电路学PDf
  • Unity3d Asset Serialization 设置错误导致SVN文件不能同步
  • node.js可以写接口吗
  • debug命令及其基本操作
  • cocos2dx官方教程
  • 使用NGUI时遇到物理引擎错误
  • jquery可以实现哪些效果
  • 三消游戏规则
  • cocos2dx:C++层通过JniHelper调用JAVA层代码进而调用Android手机应用接口
  • android中的webview
  • javascript面向过程
  • select ui
  • 归并代码
  • js无限极分类
  • 山东税务申报如何网上申报
  • 单位自有住房免增值税吗
  • 郑州地铁客服热线电话
  • 四川国税网上办税
  • 中国古代的税收制度的演变
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设