vue3配置代理--[vite] http proxy error

这篇具有很好参考价值的文章主要介绍了vue3配置代理--[vite] http proxy error。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

跨域问题

跨域请求数据, 浏览器同源策略的保护机制, 通过proxy实现跨域请求数据; 如果直接postman请求是不会报错的, vue3报错是因为经过浏览器了, 数据其实返回了, 但是别浏览器的同源策略屏蔽了。

问题

本地调试, 后端使用**http://localhost:8081作为接口地址, 报错 [vite] http proxy error**
vue3配置代理--[vite] http proxy error,vue3技巧,http,网络协议,网络

问题分析

可能是localhost 被使用了。 Node.jsv17以下版本中会对DNS解析地址的结果进行重新排序。 当访问localhost时, 浏览器使用DNS来解析地址, 这个地址可能与Vite正在监听的地址不同。当地址不一致时。导致接口报错。

解决方案

后端不要使用localhost作为接口域名,配置一个虚拟域名或者使用127.0.0.1

vite.config.js 中配置代理, 解决跨域问题。

后端接口如果有统一的标识, 比如api的配置

vite.config.js

export default defineConfig({ 
  server: { // 中转服务器
    proxy: { // 通过代理实现跨域,搭理这个地址http://localhost:8081
      '/api': {  // 路径, 作为就是替换域名
        target: 'http://127.0.0.1:8081', // 表示要替换的服务端地址
        changeOrigin: true, // 表示开启代理, 允许跨域请求数据
        secure: false,  // 如果是https接口,需要配置这个参数      
      }
    }
  } 
})

释义: 如果前端请求带有/api的接口地址, 都会转发到http://127.0.0.1:8081这个服务端地址上面。
模板中请求示例

<template>
  <div>{{ store.state.msg }}</div>
  <p><button @click="updateMsg()">改变数据</button></p>
</template>
<script>
export default{
  inject:['store'],
  /**
   * fetch 原生js, 不是ajax的封装,是一种http数据请求的方式,es6中的语法  
   */
   mounted(){
    /**
     * fetch 返回promise对象
     * 
     * 跨域请求数据, 浏览器同源策略的保护机制, 通过proxy实现跨域请求数据
     */
    let url = '/api/tests' // 模板中直接写相对路径就可以
    fetch(url).then((res)=>{
      console.log(res.json())
    })
  },

  methods:{
    updateMsg:function(){
      this.store.updateMsg()
    }
  }
}
</script>

(*)后端接口如果没有统一的标识,自己定义一个, 然后重写再去掉

这样配置, 通用性更高一些。

vite.config.js

export default defineConfig({
  server: { // 中转服务器
    proxy: { // 通过代理实现跨域,搭理这个地址http://localhost:8081
      '/path': {  // 路径, 作为就是替换域名
        target: 'http://127.0.0.1:8081', // 表示要替换的服务端地址
        changeOrigin: true, // 表示开启代理, 允许跨域请求数据
        secure: false,  // 如果是https接口,需要配置这个参数
        rewrite: path => path.replace(/^\/path/, '') // 设置重写路径, 去掉path
      }
    }
  } 
})

模板中请求示例文章来源地址https://www.toymoban.com/news/detail-713230.html

<template>
  <div>{{ store.state.msg }}</div>
  <p><button @click="updateMsg()">改变数据</button></p>
</template>
<script>
export default{
  inject:['store'],
  /**
   * fetch 原生js, 不是ajax的封装,是一种http数据请求的方式,es6中的语法
   * 
   * axios 也是http数据请求的方式, 但它是第三方库, 需要引入、安装
   */
   mounted(){
    /**
     * fetch 返回promise对象     
     * 特别注意, 接口路径多了一个path, 代理转发的时候, 会去掉的。
     */
    let url = '/path/api/tests' 
    fetch(url).then((res)=>{
      console.log(res.json())
    })
  },

  methods:{
    updateMsg:function(){
      this.store.updateMsg()
    }
  }
}
</script>

到了这里,关于vue3配置代理--[vite] http proxy error的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vite+vue3+ts项目上线docker 配置反向代理API

    这次重点的坑是反向代理。 1。项目中配置代理,为了跨域请求数据 项目根目录中新建vite.config.ts文件 在文件中添加配置代理 注意:其中 \\\'/api\\\' 和target 的地址后面没有 \\\'/\\\' 2。在项目根目录中新建Httprequest.ts文件,引入axios,并封装请求 引入axios就不多说了,npm自行安装就好 注

    2024年02月20日
    浏览(55)
  • Vite 配置代理 Proxy,解决跨域

    我们在编写前端项目的时候,经常会遇到跨域的问题,当我们访问后端 API 的 URL 路径时,只要域名、端口或访问协议(如 HTTP 和 HTTPS)有一项不同,就会被浏览器认定为跨域。另外我们也会经常重复编写后端的域名,例如  https://example.com/api/some_end_point , https://example.com/ap

    2024年02月16日
    浏览(48)
  • vue3项目vite.config.js配置“代理”、“端口”、“打包名”、“图片压缩”

    前言 我们在搭建vue3项目的时候不可避免的会遇到“代理”、“端口”、“打包名”、“图片压缩”等配置问题,本文逐一讲述该怎么样在vite.config.js中去配置。 一、配置代理端口和代理转发 vite.config.ts添加如下代码 ts.config.json添加如下代码 图片压缩先要引入vite-plugin-imagem

    2024年02月07日
    浏览(82)
  • vue3.0 proxy设置代理不成功

    首先在项目中创建vue.config.js 注意在ts环境下仍为js结尾 项目配置详情如下: 结果运行依然报错 最后还是出现在axios的默认基本路径的配置和代理发生了冲突,代理本身是将请求基本路径代理到目标基本路径 比如: 项目基本路径是http:localhost:8080 axios 基本路径却设置为http:loc

    2024年02月12日
    浏览(35)
  • docker使用http_proxy配置代理

    钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。 在内网服务器中,docker经常需要下载拉取镜像,但由于没有网络要么只能手动导入镜像包,又或者通过http_proxy代理到其它服务器下载。 增加 http-proxy.conf 配置文件,正确配置好代理服务器后重启d

    2024年01月22日
    浏览(62)
  • vue cli 打包、生产环境http-proxy-middleware代理

    结构树 版本 1、创建vue.config.js 如果采用了本地cdn则index.html 2、创建ecosystem.config.js 3、创建himdcs.js 4、修改package.json 5、部署到docker 6、http-proxy-middleware参数说明 option.target:url字符串将与url模块解析 option.forward:url字符串将与url模块解析 option.target:传递给http(s)请求的对象(参

    2024年02月09日
    浏览(49)
  • vue3.2+vite+代理,使用websocket

    之前以为websocket复杂,想使用插件来实现,查了一番资料,原生写法就很简单。 查询列表,需要实时获取员工上报的数据 Table.vue 因为跨域问题,这里使用了vite的proxy代理功能 vite.config.ts 如果代理设置好,连接成功,以上websocket会打印\\\"连接成功\\\"和输出返回。 完! 项目运行

    2024年02月10日
    浏览(47)
  • vue.config.js配置proxy代理解决跨越;proxy代理报404;

    像我们本地的vue项目运行起来,访问的地址一般是localhost,这个时候请求后台的接口,端口号也不一致,肯定就会存在跨域问题,所以我们要是想正常访问接口的话,就需要解决掉跨域问题。 本文我们是在vue.config.js配置proxy代理解决跨越:如果没有vue.config.js,就直接在项目

    2023年04月08日
    浏览(50)
  • vue.config.js 配置proxy代理

    方案一: 配置文件 文件内容 三个文件分别是三个不同环境使用的,如线上,线上测试,本地测试。我在本地测试时三个文件都配置成了一样。  vue.config.js 配置文件 问题: 控制台显示 400 (Bad Request)或404等问题都是 vue.config.js 配置文件 的 proxy 的配置问题。 主要检查点

    2024年03月15日
    浏览(49)
  • 【vue】uniapp vue3 vite代理设置问题【H5 微信小程序】

    基于vue3版本的uniapp运行h5和微信小程序 uniapp运行h5请求接口成功,运行微信小程序请求接口不成功 vite.config.ts配置proxy .env配置请求接口域名 request.ts 请求接口文件 微信小程序识别不了代理的配置 需要判断当前是h5还是微信小程序端,对请求接口文件进行修改,其他文件不修

    2024年02月09日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包