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

  • 苹果手机怎么一键打开手电筒(苹果手机怎么一键锁屏)

    苹果手机怎么一键打开手电筒(苹果手机怎么一键锁屏)

  • 苹果笔记本256g够用吗(苹果笔记本256G内存够用吗)

    苹果笔记本256g够用吗(苹果笔记本256G内存够用吗)

  • 阻止来电号码后能知道对方是否打过电话吗(阻止来电号码后对方知道吗)

    阻止来电号码后能知道对方是否打过电话吗(阻止来电号码后对方知道吗)

  • iphone阻止来电的短信(iPhone阻止来电的短信怎么看)

    iphone阻止来电的短信(iPhone阻止来电的短信怎么看)

  • qq主题免费有哪些(qq主题免费的叫什么名字)

    qq主题免费有哪些(qq主题免费的叫什么名字)

  • 抖音里自己的评论怎么找(抖音买评论)

    抖音里自己的评论怎么找(抖音买评论)

  • 苹果11怎么不能设置面容ID了(苹果11怎么不能录屏了)

    苹果11怎么不能设置面容ID了(苹果11怎么不能录屏了)

  • 1458是ipad几(ipad型号a1458是ipad几)

    1458是ipad几(ipad型号a1458是ipad几)

  • 手机怎么申请第二个淘宝号(手机怎么申请第二个微信)

    手机怎么申请第二个淘宝号(手机怎么申请第二个微信)

  • 小米手环2变暗还有救吗(小米手环2变暗了还有什么用途)

    小米手环2变暗还有救吗(小米手环2变暗了还有什么用途)

  • 为什么新注册抖音没有观看量(为什么新注册抖音号没有最新特效)

    为什么新注册抖音没有观看量(为什么新注册抖音号没有最新特效)

  • 微信绿码在哪里打开(微信绿码怎么弄出来)

    微信绿码在哪里打开(微信绿码怎么弄出来)

  • 快手作品c类多久恢复(快手作品c类犯规什么意思)

    快手作品c类多久恢复(快手作品c类犯规什么意思)

  • 手机电池鼓起来的原因(手机电池鼓起来了还能用吗)

    手机电池鼓起来的原因(手机电池鼓起来了还能用吗)

  • mate305g是双卡吗(mate305g支持双卡吗)

    mate305g是双卡吗(mate305g支持双卡吗)

  • 桌面云备份有什么用(桌面云备份有什么)

    桌面云备份有什么用(桌面云备份有什么)

  • word文档字体怎么竖着排列(word文档字体怎样竖着)

    word文档字体怎么竖着排列(word文档字体怎样竖着)

  • 苹果xs充电支持多少(苹果xs充电支持快充吗)

    苹果xs充电支持多少(苹果xs充电支持快充吗)

  • vivos5怎么开启单手模式(vivos5单手操作)

    vivos5怎么开启单手模式(vivos5单手操作)

  • wifi直连怎么用(电视机wifi直连怎么用)

    wifi直连怎么用(电视机wifi直连怎么用)

  • 探探别人向我打招呼哪里查看(探探老给我发短信说有人)

    探探别人向我打招呼哪里查看(探探老给我发短信说有人)

  • pafm00是什么手机型号pafm00是什么手机型号(pafm00是什么型号多少钱)

    pafm00是什么手机型号pafm00是什么手机型号(pafm00是什么型号多少钱)

  • qq好友聊天有个耳朵(qq好友聊天有个耳机标志)

    qq好友聊天有个耳朵(qq好友聊天有个耳机标志)

  • js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标(js去掉数组中的空字符串)

    js去掉两个数组相同的元素、js删除数组中某一个对象、js快速查找数组中重复项下标(js去掉数组中的空字符串)

  • 强大的图片预览组件Viewer.js(强大的图片预览软件)

    强大的图片预览组件Viewer.js(强大的图片预览软件)

  • 织梦信息发布员发表文章后自动审核更新生成HTML(织梦如何使用)

    织梦信息发布员发表文章后自动审核更新生成HTML(织梦如何使用)

  • 奖金算不算工资薪金所得
  • 经营者个人所得税申报
  • 装修费用如何入账
  • 企业财务独立核算
  • 红字发票重复提交了数据该怎么处理
  • 小规模纳税人免征增值税政策
  • 小企业会计准则适用于哪些企业
  • 三方协议怎么入账
  • 银行收取代发工资合法吗
  • 虚减利润如何进行账务调整?
  • 数字证书费
  • 农产品收购发票上的买价含税吗
  • 个体纳税申报核定销售额填不填
  • 金蝶标准版期末结转过不去
  • 工程决算条件
  • 已备案购销合同
  • 充积分送手机
  • 事业单位财政补助收入会计分录
  • 房地产开发企业资质证书
  • 购买产品优惠计入什么科目
  • 上网的操作
  • 谈谈你对人民美好生活的理解
  • win10如何添加网络适配器
  • 冲减其他应收款需要领导审批吗
  • PHP:gettimeofday()的用法_Date Time函数
  • Maximum call stack size exceeded错误
  • 粒子效果大全
  • 公司转让固定资产要交税吗
  • 进项税额大于销项税额会计分录
  • php超时限制
  • 已确认的发票如何入账
  • yolov7训练自己的模型用 flask封装
  • SpringBoot+Vue实现文件上传下载功能
  • mkpart命令
  • discuz关闭电脑版
  • python 如何调用c
  • 收到个人所得税汇算清缴短信
  • java中同步有两种方法
  • FPGA实现64点IFFT(VHDL)
  • dedecms安装及配置
  • php_fileinfo不支持
  • 增值税哪些行业不能抵扣
  • 公司汽车转卖给个人税率
  • 事业单位长期应付款呆账怎样处理好
  • 公司支付宝账户怎么管理
  • 职工教育经费的扣除限额
  • 营改增后小规模都是三个点吗
  • 印花税怎么用
  • 冲回多提的坏账准备会计分录
  • 电子承兑汇票到期怎么兑现
  • 施工企业的成本核算
  • 微信转账如何处理退回去
  • 原材料变为商品怎么做账
  • 如何调整以前年度库存
  • 权益净利率如何分析
  • 快递费属于办公费吗
  • 公司与公司之间的函怎么写
  • 税控盘反写怎么操作流程
  • 如何理解其他应收款的概念
  • 平均净资产是什么意思
  • mysql 性能调优参数
  • win10虚拟桌面版
  • linux终端怎么运行
  • centos6 rpm
  • Win10预览版怎么变回正式版
  • windows7粘滞键怎么关
  • 如何设置电脑开机密码
  • win7重装系统需要重新激活吗
  • linux常见shell命令
  • win8无法安装net4.7
  • win10 rs3
  • JS写XSS cookie stealer来窃取密码的步骤详解
  • Unity3D游戏开发培训课程大纲
  • 元素显示模式
  • windows安装pycharm
  • php实现登录功能
  • unity灯光闪烁效果
  • jquery下拉列表
  • 广州市税务局长
  • 企业改制和重组的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设