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

  • 小米主题怎么自己制作(小米主题怎么自己做主题发布)

    小米主题怎么自己制作(小米主题怎么自己做主题发布)

  • 华米是华为还是小米(华米是华为还是荣耀)

    华米是华为还是小米(华米是华为还是荣耀)

  • qq性别可以隐藏吗(qq性别隐藏了怎么取消)

    qq性别可以隐藏吗(qq性别隐藏了怎么取消)

  • iphone11充电时间(苹果11充电时间过长有事吗)

    iphone11充电时间(苹果11充电时间过长有事吗)

  • 小米电视怎么用爱奇艺会员(小米电视怎么用苹果手机投屏)

    小米电视怎么用爱奇艺会员(小米电视怎么用苹果手机投屏)

  • mac的ctrl是哪个键盘

    mac的ctrl是哪个键盘

  • oppo应用通知在哪里设置(oppo软件通知怎样打开)

    oppo应用通知在哪里设置(oppo软件通知怎样打开)

  • 怎么设置拼多多不让别人看到我买的东西(怎么设置拼多多访问相册)

    怎么设置拼多多不让别人看到我买的东西(怎么设置拼多多访问相册)

  • 图片后缀格式怎么改(图片后缀格式文件)

    图片后缀格式怎么改(图片后缀格式文件)

  • 对方把我电话拉黑了会提示什么(对方把我电话拉黑了怎么才能打通)

    对方把我电话拉黑了会提示什么(对方把我电话拉黑了怎么才能打通)

  • 电话听不到声音怎么回事(为什么手机打电话听不到声音)

    电话听不到声音怎么回事(为什么手机打电话听不到声音)

  • 荣耀30没耳机吗(荣耀30不配耳机吗)

    荣耀30没耳机吗(荣耀30不配耳机吗)

  • 抖音没有粉丝怎么办(抖音没有粉丝怎么变现)

    抖音没有粉丝怎么办(抖音没有粉丝怎么变现)

  • 钉钉直播老师能听到学生说话吗(钉钉直播老师能听到学生声音吗)

    钉钉直播老师能听到学生说话吗(钉钉直播老师能听到学生声音吗)

  • qq删除了好友还能恢复聊天记录吗(qq删除了好友还能看到在线状态吗)

    qq删除了好友还能恢复聊天记录吗(qq删除了好友还能看到在线状态吗)

  • 互联网开发维护是做什么的(互联网开发维护岗位职责)

    互联网开发维护是做什么的(互联网开发维护岗位职责)

  • 大数据对O2O的作用和意义(大数据对o2o的作用是什么)

    大数据对O2O的作用和意义(大数据对o2o的作用是什么)

  • 碰一碰nfc是什么(nfc一碰连wifi)

    碰一碰nfc是什么(nfc一碰连wifi)

  • ipada1709是几代(ipad型号a1709是几代)

    ipada1709是几代(ipad型号a1709是几代)

  • wps姓名对齐怎么设置(wps姓名对齐)

    wps姓名对齐怎么设置(wps姓名对齐)

  • 如何把歌词放在桌面上(如何把歌词放在桌面)

    如何把歌词放在桌面上(如何把歌词放在桌面)

  • 苹果11可以可以广角拍摄吗(苹果11可以可以解锁ID吗)

    苹果11可以可以广角拍摄吗(苹果11可以可以解锁ID吗)

  • jupyter干什么用的(jupyter有什么优点)

    jupyter干什么用的(jupyter有什么优点)

  • 咸鱼怎么关注别人账号(闲鱼上怎么关注其他人)

    咸鱼怎么关注别人账号(闲鱼上怎么关注其他人)

  • oppoa5桌面时间图标怎么设置(oppoa57的桌面时间哪去了)

    oppoa5桌面时间图标怎么设置(oppoa57的桌面时间哪去了)

  • vivo悬浮球是啥意思(vivo手机悬浮球app)

    vivo悬浮球是啥意思(vivo手机悬浮球app)

  • 5g带来哪些行业的发展(5g带来哪些行业的商业)

    5g带来哪些行业的发展(5g带来哪些行业的商业)

  • 外贸企业申报退税流程
  • 注册税务师的报名条件、时间及考试
  • 购房发票契税票丢了可以补吗
  • 投资入股变更股权比例
  • 结转完工入库产品成本计算
  • 企业收到补贴需要开票吗
  • 固定资产怎么进账
  • 福利费进项税额转出会计分录账务处理
  • 冲红票需要给购方吗
  • 公司注销之后股东还承担责任吗
  • 应取得未取得发票
  • 托管物资账务处理流程
  • 增值税税率调整时间17变16
  • 企业间贴现手续怎么办理
  • 退回多交的所得税怎么做分录小规模
  • 印花税减半优惠政策2019
  • 租房修缮费扣除
  • 股东以个人名义签订租赁合同
  • 旧机器设备出口
  • 电子承兑转让怎么撤销
  • 鸿蒙系统怎么开发
  • 鸿蒙系统开发人员选项
  • 跨年的发票冲红
  • 货到付款怎么做账
  • wordpress恢复主题默认设置
  • php获取文件名后缀
  • 待安置期间生活补助费多少钱
  • 增值税检查的内容
  • 在Windowsserver2019环境下,配置IP地址使用
  • centos安装php环境
  • php csrf攻击
  • ubuntu搭建web服务器流程
  • Laravel 5.1 on SAE环境开发教程【附项目demo源码】
  • 权益法的比例是多少
  • 一般纳税人只有销项没有进项
  • centos7源码包安装
  • 美元利息结汇是属于外汇
  • 内资企业如何进国企
  • 研发支出的账务怎么处理
  • 主营业务成本包括哪些
  • 经营性现金净流量公式
  • 扫码开票软件
  • 企业收到退回的银行汇票多余款项
  • 业务招待费进项税额转出会计分录
  • 收客户货款怎么说话
  • 私营企业员工享受探亲假吗
  • 股权转让的会计资料归谁所有
  • 报销单会计分录怎么写
  • 培训费开票属于劳务费吗
  • 偷税漏税追溯年限怎么算
  • 外出参加会议费用怎么做账
  • 固定资产是每月折旧吗
  • 根据《物业管理条例》的规定,物业服务企业
  • 银行流水账单怎么删
  • 白条入账会受到监管吗
  • 股东现金存入公司账户,该如何做账?
  • 对公账户 发票
  • mongodb与mysql相比的优缺点
  • 注册表已被管理员禁用怎么处理
  • 最新版的win10
  • win10自动
  • winxp文件夹选项在哪
  • 查看rpm包含的内容
  • linux小技巧
  • android开发地图应用
  • 列表框代码
  • 批处理基础知识
  • nodejs跳转到指定页面
  • 常用的批处理文件
  • 网页中经常用到的代码
  • Unity3D游戏开发标准教程
  • python multinomial
  • activity的自定义流程
  • 湖北省电子税务局操作指南
  • 税务疑点核查报告
  • 差额征税可以全部抵成本么?
  • 仓储物流用地属于商业用地吗
  • 完税证明可以自己在官网打印吗
  • 河南省印花税核定征收暂行办法
  • 太原公安分局有几个
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设