返回顶部
首页 > 资讯 > 前端开发 > html >Vue3.x+axios跨域的示例分析
  • 743
分享到

Vue3.x+axios跨域的示例分析

2024-04-02 19:04:59 743人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关vue3.x+axiOS跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue.config.js中devServer.proxy

这篇文章将为大家详细讲解有关vue3.x+axiOS跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

vue.config.js中devServer.proxy的配置解析

Vue3.x的CLI工具比Vue2.x的CLI工具构建的项目要简化很多,根目录下只有./src和./public文件夹,所以网上很多教程说config目录下的vue.config.js是说的vue2.x版本。那么对于Vue3.x版本,构建也很简单,直接在根目录里建一个vue.config.js配置文件就可以了,我们直接看devServer.proxy里的代码:

我这里devServer的地址是:localhost:8080/,需要代理的地址是:localhost/index/PHPinfo.php (我自己写的一个测试跨域用的php,返回一个‘ok')

下面是根据上面的地址需要配置的proxy对象

devServer : {
  proxy : {
   '/index' : {
    target : 'Http://localhost/index',
    // ws : true,
    changeOrigin : true,
    pathRewrite : {
     '^/index' : ''
    }
   }
  }
 }

大部分教程到这里就停止了,但是我在这里做一个扩展,为了让读者理解这里的配置是如何起作用的(以下内容整理自http-proxy-middleware的npm描述里,http-proxy-middleware是一个npm模块,是proxy的底层原理实现)。

         foo://example.com:8042/over/there?name=ferret#nose
         \_/   \______________/\_________/ \_________/ \__/
          |           |            |            |        |
       scheme     authority       path        query   fragment

以我上面的配置为例,'/index'这个key在http-proxy-middleware中被称为context——用来决定哪些请求需要被target对应的主机地址(这里是http://localhost/index)代理,它可以是 字符串,含有通配符的字符串,或是一个数组,分别对应于path matching(路径匹配)wildcard path matching(通配符路径匹配)multiple path matching(多路径匹配),而这里的path指的就是上图所标识的path段。

简言之,这个key就是匹配path的,一旦匹配到符合的path,就会把请求转发的代理主机去,而代理主机的地址就是target字段对应的内容。

那pathRewrit是什么意思呢?意如其名,路径重写。就是把模式(这里是^/index)匹配到的path重写为对应的路径(这里是'',相当于删除了这个匹配到的路径)。除了删除,还有在原有路径上添加一个基础路径,或是改写一个路径的方式,这可以参考http-proxy-middleware的npm描述的option.pathRewrite章节 。

在Vue中使用axios

这个使用任意一个ajax封装的库都是可行的,axios,Jquery.ajax或者是vue-resource都是可以的。
在Vue中使用axios,网上有两种方法,一种是将axios加入Vue的原型里,我更推荐第二种方法:

npm install axios vue-axios
import axios from 'axios';
import VueAxios from 'vue-axios';
Vue.use(VueAxios,axios);

以我上面的proxy配置为基础,想要让代理成功转发到localhost/index/phpinfo.php,在Vue实例中axios需要这样写访问地址:

this.axios.get('/index/phpinfo.php').then((res)=>{
  console.log(res);
  })

我们来分析这些代码整个发挥作用的原理是什么?首先,axios去访问/index/phpinfo.php,这是个相对地址,所以真实访问地址其实是localhost:8080/index/phpinfo.php,然而/index/phpinfo.php被我们配置的/index匹配到了 ,所以访问被proxy代理,那转发到哪个路径呢?在pathRewrite中,我们将模式^/index的路径清除了,所以最终的访问路径是 target+pathRewrite+ 剩余的部分 , 这样也就是 http://localhost/index++/phpinfo.php

坑点

可能出现即使配置了proxy,但是依然没有任何卵用。

  • 大部分情况是因为你的proxy配置和你的访问路径不匹配,或者即使匹配到了,但是转发出去的地址不对,没有命中后端给的api

  • 或者看看axios,有没有使用正确姿势?

  • 还有一点,或许你看到返回的response里的url依然显示的是本地主机,但是数据已经正常返回,这是正常的,因为我们访问的本来就是本地主机,只不过proxy转发了这个请求到一个新的地址。

关于“Vue3.x+axios跨域的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Vue3.x+axios跨域的示例分析

本文链接: https://lsjlt.com/news/79275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue3.x+axios跨域的示例分析
    这篇文章将为大家详细讲解有关Vue3.x+axios跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue.config.js中devServer.proxy...
    99+
    2024-04-02
  • axios中cookie跨域及相关配置的示例分析
    这篇文章将为大家详细讲解有关axios中cookie跨域及相关配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、 带cookie请求 - 画个重点axios...
    99+
    2024-04-02
  • vue-cli axios请求方式及跨域处理的示例分析
    这篇文章给大家分享的是有关vue-cli axios请求方式及跨域处理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue-cli axios请求方式以及跨域处理安装a...
    99+
    2024-04-02
  • WEB前端跨域的示例分析
    这篇文章主要为大家展示了“WEB前端跨域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“WEB前端跨域的示例分析”这篇文章吧。 ...
    99+
    2024-04-02
  • Canvas跨域脱坑的示例分析
    小编给大家分享一下Canvas跨域脱坑的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先来看下实现方法。实现方法目标图片一般是由 图片 + 文本 构成。无...
    99+
    2023-06-09
  • HTML5中window.postMessage与跨域的示例分析
    这篇文章给大家分享的是有关HTML5中window.postMessage与跨域的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。讲到浏览器同源策略,即阻止不同域的页面间访...
    99+
    2024-04-02
  • H5中window.postMessage与跨域的示例分析
    这篇文章主要为大家展示了“H5中window.postMessage与跨域的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“H5中window.postM...
    99+
    2024-04-02
  • AJax与Jsonp跨域访问的示例分析
    这篇文章主要介绍AJax与Jsonp跨域访问的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!####JavaScript的AJaxAJAX即“Asynchronous Jav...
    99+
    2024-04-02
  • ajax和jsonp跨域原理的示例分析
    这篇文章主要为大家展示了“ajax和jsonp跨域原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax和jsonp跨域原理的示例分析”这篇文章吧...
    99+
    2024-04-02
  • canvas导出图片跨域的示例分析
    这篇文章将为大家详细讲解有关canvas导出图片跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:Uncaught DOMException: Failed to execute &#...
    99+
    2023-06-09
  • axios和session的示例分析
    这篇文章主要为大家展示了“axios和session的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“axios和session的示例分析”这篇文章吧。发...
    99+
    2024-04-02
  • Vue2.x-directive的示例分析
    这篇文章主要介绍Vue2.x-directive的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!除了默认设置的核心指令( v-model 和 v-show ),Vue 也允许...
    99+
    2024-04-02
  • 前端面试之同源和跨域的示例分析
    这篇文章将为大家详细讲解有关前端面试之同源和跨域的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是同源策略同源策略是用来限制从一个源加载的文档或者脚本如何与来自另一个源的资源进行交互,是一种用...
    99+
    2023-06-08
  • Vue3.x最小原型系统实例分析
    这篇文章主要介绍了Vue3.x最小原型系统实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue3.x最小原型系统实例分析文章都会有所收获,下面我们一起来看看吧。一、 项目初始化既然用Vue3.0构建最小...
    99+
    2023-06-29
  • Angular 4.x路由的示例分析
    这篇文章给大家分享的是有关Angular 4.x路由的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Installing the router首先第一件事,我们需要安装 ...
    99+
    2024-04-02
  • Python 3.x踩坑的示例分析
    这篇文章主要为大家展示了“Python 3.x踩坑的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Python 3.x踩坑的示例分析”这篇文章吧。处处有坑1. 文件读...
    99+
    2023-06-29
  • PHP Session 跨域应用的案例分析
    摘要:Session 是 PHP 中一种常用的机制,用于在不同页面间共享数据。然而,在多个域或子域之间传递 Session 数据是一个挑战。本文将通过一个具体案例,介绍如何实现 PHP Session 跨域应用,并提供相应的代码示例。介绍跨...
    99+
    2023-10-21
    跨域应用 分析 PHP
  • Spring Security使用中Preflight请求和跨域的示例分析
    这篇文章主要介绍了Spring Security使用中Preflight请求和跨域的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Spring SecuritySpr...
    99+
    2023-05-30
    spring security
  • SpringCloud前后端分离后引起跨域访问的示例分析
    这篇文章主要为大家展示了“SpringCloud前后端分离后引起跨域访问的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringCloud前后端分离...
    99+
    2024-04-02
  • Vue.js1.x和2.x生命周期的示例分析
    这篇文章给大家分享的是有关Vue.js1.x和2.x生命周期的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Vue.js中,在实例化Vue之前,它们都是以HTML的文本...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作