位置: IT常识 - 正文

Vue中的跨域解决方案(vue中解决跨域问题)

编辑:rootadmin
Vue中的跨域解决方案 前言

推荐整理分享Vue中的跨域解决方案(vue中解决跨域问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue跨域问题解决,vue解决跨域的原理,vue跨域问题的三种解决方案,vue跨域解决方案 简书,vue解决跨域的原理,vue跨域解决方案 简书,vue跨域解决方案 简书,vue跨域解决方案 简书,内容如对您有帮助,希望把文章链接给更多的朋友!

跨域是因为浏览器存在对不同源页面数据接收的限制。这种限制就是浏览器的同源策略。

同源策略是浏览器的安全机制,跨域的原理就是通过各种方式避开浏览器的安全机制

使用

在项目开发时,对跨域的概念仅限于了解,所以没有注重过程,只注重结果。所以在开发项目时,使用的是市面上比较常用,并且能够一劳永逸的cors。虽然cors方法能够完美解决跨域问题,但是还是要秉持着对知识探索的态度,去深入理解跨域问题。

报错提示

这里我使用8080端口的客户端访问3000端口的服务器,结果报错。

原因是因为端口号不同产生跨域。

如果将服务器端口号改为8080就不会报错了。

跨域方法

跨域的方法有cors、Proxy正向代理、Nginx反向代理、Jsonp

现阶段跨域方式有很多种,但是基本思想只有两种:

绕过同源策略

Jsonp:历史遗留的产物,虽然思想很好,但是局限性太大(仅支持get、因为数据是在url中,所以携带数据小)。

原理:有三个标签不受同源策略影响:<script src="xxx"></script><link herf="xxx"></link><img src="xxx"></img>实现: // 1.创建script var script = document.createElement('script') // 2.定义回调函数 function getData(data) { // 调用函数返回的数据 console.log(data); } // 3.设置src属性 script.src = 'http://localhost:3000?callback=getData' // 4.让cript生效 document.appendChild(script)

Nginx:通过反向代理绕过去,这是很完美的解决方案,加上会给服务器增加一点压力,不过这点压力问题并不大

如何理解反向代理:代理服务器代替目标服务器去接收并响应给客户端发起的请求。隐藏服务器。

​ 发起请求:客户端向代理服务器发出请求,代理服务器再将请求转发给目标服务器

​ 响应数据:目标服务器向代理服务器响应数据,代理服务器再向数据响应给客户端

很常用的方法,像网易、头条都使用nginx代理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ddoEgRFd-1656482203293)(https://juejin.cn/)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4M4avsX0-1656482203293)(https://juejin.cn/)]

这是我在chrome上看的某些文件。

nginx使用:

下载nginx

直接到官网下载

Vue中的跨域解决方案(vue中解决跨域问题)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gaMNC5wi-1656482203294)(https://juejin.cn/)]

修改默认配置

打开conf/nginx.conf

配置代理端口

- 配置监听端口

> 输入 start nginx.exe 没有反应表示启动成功

Proxy:通过正向代理绕过去,让服务器帮我们向服务器发送请求,因为跨域均存在于浏览器与服务器之间。只能在本地开发环境使用。

如何理解正向代理:代理服务器代替客户端向服务器发起请求。隐藏客户端。

​ 发起请求:代理服务器从客户端发出请求,向目标服务器发起请求。

​ 响应数据:目标服务器响应请求,代理服务器接收请求,并转发给客户端。

日常使用的翻墙就是基于这个原理。

一句话概述正向代理和方向代理:正向代理客户端,反向代理服务器。

main.js

axios.defaults.baseURL = '/'

vue.config.js

module.exports = { devServer: { proxy: { '/': { target: 'http://localhost:3000', // 目标服务器 changeOrigin: true } } }}

这里我使用的是webpack proxy,是webpack提供的代理服务,方便易用,但是只适用于开发阶段

原理:在代理服务器传递数据给本地浏览器的过程中,两者同源,并不存在跨域行为,这时候浏览器就能正常接收数据

此时,只要浏览器访问根路径,代理服务器就会向目标服务器发起请求。

补充:CDN(内容分发网络)

简单来说就是,用户发起请求,请求会发送到最适合的服务器上。比如说,我在广州发送请求,请求就会发送到广州的服务器上。优点类似京东快递,发货的时候会优先选择就近的京东仓库,所以物流速度很快,同样的CDN也是加快网络请求速度。

cors

终级解决方案(IE9 以下除外)

跨域资源共享 (Cross-Origin Resource Sharing, CORS),就是在服务器端的响应中加入额外的HTTP头,使浏览器能跨域访问资源。

响应头需要设置的字段:Access-Control-Allow-Origin: *

我做项目时,使用方法是添加 cors 中间件

// 引入corsconst cors = require('cors')// 使用 cors()app.use(cors())

说明

跨域请求产生时,服务器是能够接收到数据的,并且也响应了数据,只不过在浏览器接收数据的时候,由于不同源的原因,出发了浏览器的安全机制,所以数据就被挡在浏览器外。

本文链接地址:https://www.jiuchutong.com/zhishi/300774.html 转载请保留说明!

上一篇:2023年AI十大展望:GPT-4领衔大模型变革,谷歌拉响警报,训练数据告急(2023年中国会有什么重大事件)

下一篇:js中遍历对象数组并获取对象相应的属性值(js怎样遍历对象中的每个元素)

  • 小米手机桌面自动整理怎么关闭(小米手机桌面自选图片)

    小米手机桌面自动整理怎么关闭(小米手机桌面自选图片)

  • 微信一直安装失败是什么情况(微信一直安装失败原因电脑)

    微信一直安装失败是什么情况(微信一直安装失败原因电脑)

  • 苹果xr微信变成夜间模式如何调回来(苹果xr微信变成黑色了)

    苹果xr微信变成夜间模式如何调回来(苹果xr微信变成黑色了)

  • 群主不小心退群了怎么恢复(群主不小心退群了,谁是新群主)

    群主不小心退群了怎么恢复(群主不小心退群了,谁是新群主)

  • 数字地图的功能和作用(数字地图的主要类型)

    数字地图的功能和作用(数字地图的主要类型)

  • 探探是左边喜欢还是右边喜欢(探探左边喜欢还是右边)

    探探是左边喜欢还是右边喜欢(探探左边喜欢还是右边)

  • 苹果手机来视频没有提醒声音(苹果手机来视频没反应怎么回事)

    苹果手机来视频没有提醒声音(苹果手机来视频没反应怎么回事)

  • 充电慢是手机问题还是充电器问题(充电慢是手机问题还是数据线)

    充电慢是手机问题还是充电器问题(充电慢是手机问题还是数据线)

  • 小米10青春版有耳机孔吗(小米10青春版有无线充电功能吗)

    小米10青春版有耳机孔吗(小米10青春版有无线充电功能吗)

  • 我的快手界面跟别人的不一样(快手显示页面怎么变了)

    我的快手界面跟别人的不一样(快手显示页面怎么变了)

  • 抖音网络不给力怎么回事(抖音网络不给力什么情况)

    抖音网络不给力怎么回事(抖音网络不给力什么情况)

  • pentium微机的字长是(pentium微机的字长)

    pentium微机的字长是(pentium微机的字长)

  • 手机为什么网络连接正常却上不了网(手机为什么网络差)

    手机为什么网络连接正常却上不了网(手机为什么网络差)

  • 电脑上下载的软件怎么安装到桌面(电脑上下载的软件如何安装到桌面)

    电脑上下载的软件怎么安装到桌面(电脑上下载的软件如何安装到桌面)

  • 苹果11只能设置一个面容吗(苹果只能设置一个人的面容吗)

    苹果11只能设置一个面容吗(苹果只能设置一个人的面容吗)

  • 苹果手表4代可以拍照吗(苹果手表4代可以微信支付吗)

    苹果手表4代可以拍照吗(苹果手表4代可以微信支付吗)

  • 微信借充电宝押金怎么退(微信借充电宝押金原路退回怎么操作)

    微信借充电宝押金怎么退(微信借充电宝押金原路退回怎么操作)

  • 苹果xr有没有3dtouch

    苹果xr有没有3dtouch

  • 苹果x无面容是什么意思(苹果x无面容是什么机子)

    苹果x无面容是什么意思(苹果x无面容是什么机子)

  • 探探暗恋成功怎么取消(探探暗恋成功会发短信吗)

    探探暗恋成功怎么取消(探探暗恋成功会发短信吗)

  • vue添加自定义音乐(vue 添加自定义属性)

    vue添加自定义音乐(vue 添加自定义属性)

  • 下载磁盘速度太慢(磁盘下载慢)

    下载磁盘速度太慢(磁盘下载慢)

  • 电脑关机了wifi还能用吗(电脑关机了wifi还能检测到在线)

    电脑关机了wifi还能用吗(电脑关机了wifi还能检测到在线)

  • Mac OS系统修改Hosts文件的4种方法(mac修改系统版本号)

    Mac OS系统修改Hosts文件的4种方法(mac修改系统版本号)

  • 租赁合同印花税计税依据
  • 视同销售收入是纳税调整项目吗?
  • 车辆保险的车船税怎么算
  • 自来水安装增值税税率
  • 允许抵扣的进项税额分为哪几种情况
  • 城镇土地使用税纳税义务发生时间
  • 增值税发票四舍五入
  • 技术咨询服务开什么发票
  • 营业外支出怎么结转本年利润
  • 业务招待产生的快递费
  • 企业贷款罚息可以减免吗
  • 收到一达通退税款怎么做账
  • 房产空置怎么判定
  • 农业企业土地租赁费账务处理
  • 营业外收入是否报增值税
  • 境外所得纳税
  • 领定额发票需要报税吗
  • 个体户收入总额是含税还是不含税
  • 哪些资产减值损失可以 转回,哪些不能?
  • 总杠杆系数的计算公司
  • 新会计准则规定资产如何入账
  • 印花税减半再减半政策文件是什么
  • 旅游服务费如何入账
  • 零售行业折扣如何做账?
  • win10禁用安全杀毒功能
  • 车间租金计入什么会计科目
  • bios设置教程视频
  • php获取农历日期
  • php框架怎么写
  • 盈利 利润
  • 怎么登明细分类账
  • 用彩泥可以做什么食物?
  • php获取网页源码
  • PHP:finfo_open()的用法_fileinfo函数
  • 拉德克里夫图书馆
  • 发票已开,款未到的会计分录
  • 支付宝提现到对公账户怎么做账
  • 前端html模板
  • showmount命令安装
  • php中url什么意思
  • 会计账的银行存款与银行存款不一致 是属于账账不符吗
  • dom常用方法
  • 农民工的劳务报酬个人所得税怎么那么高
  • 织梦相关文章调用
  • 帝国cms登录
  • 金税三期业务操作手册
  • 借款合同的
  • 暂估入账跨年如何红冲
  • 财务收入支出明细表
  • 境外企业向境内企业提供劳务
  • 投资性房地产与持有待售资产的区别
  • 公司缴纳印花税如何缴纳
  • 不验旧能领购发票吗
  • 专票网上抵扣流程
  • mysql可以存什么
  • mysql重置binlog
  • centos还原
  • window10怎么window7
  • win7开机启动
  • redhat网卡配置文件
  • centos添加用户到组
  • 虚拟机中怎么安装VMwareTools
  • mac如何回复系统
  • silent.exe - silent是什么进程 有什么用
  • win10qq在哪里启动
  • 如何清楚windows搜索记录
  • win7网络访问权限
  • windows2008输入法
  • win8怎么打开桌面
  • linux安装步骤
  • cocos2d安装
  • lookAtCamera
  • intellij idea2021安装教程
  • python内置函数什么用来返回序列中的最大元素
  • Node.js中的核心模块包括哪些内容?
  • jquery实现全选
  • python数据通信
  • 工商注册和税务登记费用
  • 查询如何查询
  • 国税系统如何变更财务负责人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设