位置: 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怎样遍历对象中的每个元素)

  • 腾讯视频原手机号忘了怎么办(腾讯视频原手机号登不上去了怎么办)

    腾讯视频原手机号忘了怎么办(腾讯视频原手机号登不上去了怎么办)

  • 华为锁屏密码无法修改(华为锁屏密码无效)

    华为锁屏密码无法修改(华为锁屏密码无效)

  • 华为5700默认密码(华为5300默认密码)

    华为5700默认密码(华为5300默认密码)

  • 苹果11pro max有什么新功能(苹果11promax优点)

    苹果11pro max有什么新功能(苹果11promax优点)

  • 苹果三包法退换货条件(苹果手机三包规定退换货)

    苹果三包法退换货条件(苹果手机三包规定退换货)

  • 微信提示被加好友过于频繁(微信提示被加好友频繁怎么解决)

    微信提示被加好友过于频繁(微信提示被加好友频繁怎么解决)

  • 网易云上传新歌审核要多久(网易云 上传歌曲)

    网易云上传新歌审核要多久(网易云 上传歌曲)

  • 怎么扩大单元格(word表格怎么扩大单元格)

    怎么扩大单元格(word表格怎么扩大单元格)

  • 苹果11勿扰模式静音怎么取消(苹果11勿扰模式在哪里打开)

    苹果11勿扰模式静音怎么取消(苹果11勿扰模式在哪里打开)

  • 抖音怎么看音浪收入(抖音怎么看音浪总榜)

    抖音怎么看音浪收入(抖音怎么看音浪总榜)

  • 显卡驱动装不上是显卡坏了吗(gt730显卡驱动装不上)

    显卡驱动装不上是显卡坏了吗(gt730显卡驱动装不上)

  • 清除emmc是什么意思(为什么清除emmc没用啊)

    清除emmc是什么意思(为什么清除emmc没用啊)

  • 笔记本14和15.6寸区别(笔记本14寸跟15.6寸对比)

    笔记本14和15.6寸区别(笔记本14寸跟15.6寸对比)

  • 手提电脑除法按什么键(笔记电脑除法符号怎么打出来)

    手提电脑除法按什么键(笔记电脑除法符号怎么打出来)

  • 小米8能用5a充电线充吗(小米8能用5a充电线吗)

    小米8能用5a充电线充吗(小米8能用5a充电线吗)

  • 双十一用红包买的东西可以退款吗(双十一用红包买的东西退货之后还有红包吗)

    双十一用红包买的东西可以退款吗(双十一用红包买的东西退货之后还有红包吗)

  • 小米6x支持qc3.0快充吗

    小米6x支持qc3.0快充吗

  • 荣耀手环5i如何删除表盘(荣耀手环5i如何使用相册表盘)

    荣耀手环5i如何删除表盘(荣耀手环5i如何使用相册表盘)

  • 如何解决ie不兼容的问题(贴吧热门评论)

    如何解决ie不兼容的问题(贴吧热门评论)

  • 不适合作为数据处理与数据库应用的语言是(不适合作为数据标识的是)

    不适合作为数据处理与数据库应用的语言是(不适合作为数据标识的是)

  • 苹果无线耳机双击哪里(苹果无线耳机双耳怎么配对)

    苹果无线耳机双击哪里(苹果无线耳机双耳怎么配对)

  • qq黑名单里的人怎么恢复吗(qq黑名单里的人还能加我好友吗)

    qq黑名单里的人怎么恢复吗(qq黑名单里的人还能加我好友吗)

  • vivox27pro有面部识别吗(vivox27pro面部识别在哪里)

    vivox27pro有面部识别吗(vivox27pro面部识别在哪里)

  • 小米手机微信扫一扫扫不出来(小米手机微信扫码黑屏怎么回事)

    小米手机微信扫一扫扫不出来(小米手机微信扫码黑屏怎么回事)

  • 手机耳机接口标准(手机耳机接口叫什么接口)

    手机耳机接口标准(手机耳机接口叫什么接口)

  • 税务师职业考试
  • 股权激励费用怎么摊销
  • 混合销售行为如何缴纳增值税税率
  • 无形资产摊销月底最后一天怎么算
  • 增值税纳税申报时间
  • 金税三期个人所得税税率
  • 税票抵扣是用进项票还是销项票
  • 预付款与定金的比例
  • 简易征收进项税额转出什么意思
  • 城镇土地使用税纳税义务发生时间
  • 品种法完工产品成本的单位成本怎么算
  • 百望税控盘电子发票
  • 什么情况下发票不能冲红
  • 单位付款方式
  • 未达起征点纳税申报表怎么填
  • 增值税一般纳税企业支付现金方式取得
  • 待抵扣进项税贷方有余额什么意思
  • 金税四期进展
  • 税务稽查执法要以什么为依据,按照法定的职责
  • 建筑 分包
  • 固定资产折旧和累计折旧的区别
  • 代购工作室合法吗
  • 收境外的钱
  • windows11怎么设置我的电脑
  • 其他综合收益也要交税吗
  • 怎么做才能让电脑里自动翻译成中文
  • 身份证信息提取python
  • php字符串函数有哪些
  • 协调费用应该怎么表述
  • 销售汇总表格模板
  • 经营出租的固定资产折旧计入哪里
  • npm ERR! code E404 在vscode安装插件时报错的解决方案
  • cpu和gpu性能对比
  • css 单行显示
  • 微信小程序父子通信
  • 【历史上的今天】4 月 7 日:IBM System/360 问世;以太网的发明者诞生;第一个 RFC 文档发布
  • vue中的路由参数如何获取
  • php jsonp
  • 完善固定资产管理的方案
  • 收到承兑汇票怎么操作
  • 产品检测费计入现金流量表什么项目
  • 增值税电子普通发票和专票的区别
  • 销售旧货物的增值税
  • python @time
  • mongodb从入门到商业实战
  • 公司月报和季报
  • 材料成本差异的会计分录
  • 财务报表没申报怎么操作呢
  • 处置固定资产净收益属于利得吗
  • 收到保险公司赔款
  • 职工福利费汇算清缴
  • 营业外收入与其他业务收入的区别
  • 企业承担个人所得税分录怎么做
  • 长期待摊销费用属于流动资产吗
  • 营业收入净额怎么算出来
  • mysql 厂家
  • 注册表的命令
  • ubuntu常用操作
  • linux系统怎么固定ip地址
  • win8待机后无法唤醒
  • windows10电脑声音
  • win8.1安装包
  • 菜单按钮是什么
  • 批处理传参数
  • perl数组求和
  • 编辑器ui
  • 用python编写登录程序
  • perl脚本调试方法
  • OSG 砖块 shader 例子 GLSL
  • 完美解决win11间歇性掉线
  • html5仿微博代码
  • python爬虫抓包
  • unity教程完整版
  • edittext获取焦点弹出键盘
  • 进项税额有哪些明细科目
  • 保险代理人非公司员工
  • 云南省国家税务局网上办税服务厅
  • 出售144平方米以内的房子
  • 个人所得税房贷能退多少钱
  • 国家税务总局河北地税局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设