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

  • 个人所得税信息采集怎么弄
  • 法律会计审计咨询合同需要缴纳印花税吗
  • 减去税率怎么算
  • 小规模企业免征增值税如何做账
  • 劳务公司收到劳务费怎么做账
  • 生产企业退税计算方法怎么选择
  • 以前年度应收账款无法收回的账务处理
  • 子公司分红对合并报表的影响
  • 股东个人将钱打入公司对公账户,能否算作投资款
  • 资产负债表其他流动资产包括什么
  • 软件公司的销售
  • 退休工资要缴纳税吗
  • 超标的职工教育经费为什么是可抵扣
  • 新公司做财务
  • 应收留抵税额退税款科目怎么添加进项
  • 投标公司资质借用计入什么会计科目?
  • 公众号注册验证方式
  • 公司注销留抵税金能退税吗
  • 中国公司外派美国工作
  • 批发零售企业用什么软件好
  • 购货方申请红字发票怎么申报
  • 简易计税 增值税专用发票
  • 开票码是什么意思
  • 计提本月工资记账凭证怎么填
  • 移动网络的费用有哪些
  • 增值税发票备注栏怎么填写
  • 应交税费进项税额在借方说明什么
  • 预付账款如何计提折旧
  • 路由器ip分配数量
  • mac软件打开提示意外退出
  • 增值税专用发票电子版
  • 所有者权益变动表图片
  • 安卓系统详解
  • php随机生成1到3的数字
  • php中运算符
  • 0x00000024蓝屏怎样解决
  • Windows 11 CO-21H2 22000.194 正式版官方下载地址(附esd微软三语直链下载x64+arm64)
  • 财务管理公司属于什么行业类别
  • 企业发生的现金折扣应计入什么费用
  • echart横坐标
  • 拥有自我意识的动物有哪些
  • 电子发票能否作废
  • 职工伙食费会计科目
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)
  • 线性判别分析LDA医学
  • 完美解决win10间歇性掉线
  • joinby命令
  • 小规模纳税人征收方式
  • 企业小微企业贷逾期起诉法人房子会被拍卖吗?
  • 以前年度损益调整是什么意思
  • seacms error怎么办
  • 长期债权投资业务处理
  • 金税盘维护费抵扣
  • 企业资产评估增值
  • 企业所得税退税有风险吗
  • 利润表中的利息费用是利息支出吗
  • 研发费用加计扣除新税收政策
  • 盈余公积转增资本对会计要素的影响
  • 上月暂估成本次月用冲回吗
  • 弥补企业以前年度亏损 顺序
  • 卖蒸汽的增值税是多少
  • centos6.10安装教程
  • mac自动操作怎么停止
  • wysafe.exe是什么
  • win8.1如何更改密码
  • win10安装不了ie
  • win7系统如何修复引导
  • 安卓微信5.0版本下载
  • 教你如何使用玻璃胶
  • Activity的四种启动模式和onNewIntent()
  • javascript怎么用
  • shell脚本读取输入使用什么命令
  • unity人物换肤用什么方法
  • unity mesh编程
  • unity at
  • 冒烟测试和接口测试
  • unity3d ik
  • python爬虫利器
  • 广东省电子税务局官网登录入口
  • 购置税完税证明电子版怎么查看
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设