vue.config.js配置proxy代理解决跨越;proxy代理报404;

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

像我们本地的vue项目运行起来,访问的地址一般是localhost,这个时候请求后台的接口,端口号也不一致,肯定就会存在跨域问题,所以我们要是想正常访问接口的话,就需要解决掉跨域问题。

本文我们是在vue.config.js配置proxy代理解决跨越:如果没有vue.config.js,就直接在项目根目录下建一个即可。

const path = require('path')
const resolve = (dir) => path.join(__dirname, dir)
module.exports = {
  publicPath: './', // 打包路径,使用相对路径生成的dist文件夹下的index可以打开
  outputDir: 'dist', // 输出文件目录
  productionSourceMap: false, // 取消生成map文件
  lintOnSave: false, // 配置关闭eslint  (代码会有红色热浪提示错 但不影响代码运行)
  // webpack-dev-server 相关配置
  devServer: {
    open: true, // 自动打开浏览器
    host: '0.0.0.0',
    /* 设置为0.0.0.0则所有的地址均能访问 */
    port: 8080, // 端口号
    https: false, // 是否使用https协议
    hotOnly: false, // 是否开启热更新
    // proxy: null // 设置代理
    disableHostCheck: true, // 开启可以用自己的域名

    //【【【【【【【【【【【【【【【【【【【【【注意修改和配置代理后,一定要重启项目 否则无效或404】】】】】】】】】】】】】】】】】
    //【【【【【【【【【【【【【【【【【【【【【注意修改和配置代理后,一定要重启项目 否则无效或404】】】】】】】】】】】】】】】】】
    proxy: { //【【【【【【【【【【【【【【【 注意修改和配置代理后,一定要重启项目 否则无效或404】】】】】】】】】】】】】】】】】
      // 配置多个代理
      '/chc-shop': {
        target: 'https://www.bilibili.cn', //这里的是.cn还是.com 只会影响你本地启动项目时候会调用哪个数据库的数据,而不会影响测试和线上环境调用对应的接口的。(一般都是本地调用.cn;等本地需要调试线上bug时候,改成.com重启项目看线上bug)
        changeOrigin: true, //是否跨域
        secure: false, //如果是https请求 需要设置为true
        logLevel: 'debug',
        //ws: true,//是否要代理 websocket
      },
      
      // 此处若使用 "/api1" 类似命名可能会导致请求时只截取api部分接口出现404错误,因此命名时尽量避免此类命名方式。
      // 既命名不要相似 有/api 就不要再出现/api2
      
      '/myapi': {
        target: 'https://www.bilibili.cn', //接口域名
        changeOrigin: true, //是否跨域
        secure: false, //如果是https请求 需要设置为true
        logLevel: 'debug',
        //ws: true,//是否要代理 websocket
        pathRewrite: { // 路径重写--意思就是遇到路径有 /myapi 的,就重写成 / 了。具体是重新写成 / 还是 /myapi看你自己的路径。
          '^/myapi': '/' //(如果你的路径没有公共部分 那代理就这么写 vue页面请求的地址前需要自己拼接上 /myapi/后端接口 )
          // '^/myapi': '/myapi'    //(好比你的很多路径都是有公共部分 例如 /myapi/xx/xxx类型的,那代理就需要这么写或者直接不写pathRewrite这部分)
        }
      },

    },
  },
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('common', resolve('src/common'))
      .set('utils', resolve('src/utils'))
  }
}

一、 重点注意事项:

1.配置了proxy代理,修改内容后:一定要重启项目 一定要重启项目 一定要重启项目 一定要重启项目 一定要重启项目,否则无效或者报错404.还有就是不要出现’/api’ 和’/api2’这样相似的,这样只会生效一个!!!

2.proxy可以配置多个代理。
2.1例如:我的接口很多都是/chc-shop/a1/xxx /chc-shop/a2/xxx这样的,也就是有公共部分/chc-shop。 那么就可以配置成如下代理

    //【【【【【【【【【【【【【【【 注意修改和配置代理后,一定要重启项目 否则无效或404】】】】】】】】】】】】】】】】】
    proxy: { 
      // 配置公共代理
      '/chc-shop': {
        target: 'https://www.zhbbroker.cn', //这里的是.cn还是.com 只会影响你本地启动项目时候会调用哪个数据库的数据,而不会影响测试和线上环境调用对应的接口的。(一般都是本地调用.cn;等本地需要调试线上bug时候,改成.com重启项目看线上bug)
        changeOrigin: true, //是否跨域
        secure: false, //如果是https请求 需要设置为true
        logLevel: 'debug',
        //ws: true,//是否要代理 websocket
      },
    },

同时vue页面的请求地址就是这样:
vue.config.js配置proxy代理解决跨越;proxy代理报404;
vue.config.js配置proxy代理解决跨越;proxy代理报404;

2.2例如:如果接口没有公共部分,那么就需要写pathRewrite,同时将代理的地址重写为’/';
pathRewrite的意思路径重写。意思就是遇到路径有 /myapi 的,就重写成 / 了。具体是重新写成 / 还是 /myapi看你自己的路径。
好比后端的请求地址是 /php2/mobile/login_verify_code.php,那么我需要单独写一个/php2去代理,

目标地址为:https://www.bilibili.com/php2/mobile/login_verify_code.php
代码中请求的地址为: /php2/mobile/login_verify_code.php
本地发送请求的地址为:http://localhost:8080/php2/mobile/login_verify_code.php
线上被proxy替换为实际请求地址: https://www.bilibili.com/php2/mobile/login_verify_code.php

	//【【【【【【【【【【【【【【【 注意修改和配置代理后,一定要重启项目 否则无效或404】】】】】】】】】】】】】】】】】
    proxy: { 
      '/php2': {
        target: 'https://www.zhbbroker.cn', //接口域名
        changeOrigin: true, //是否跨域
        secure: false, //如果是https请求 需要设置为true
        logLevel: 'debug',
        //ws: true,//是否要代理 websocket
   
      },

    },

同时vue请求页面
vue.config.js配置proxy代理解决跨越;proxy代理报404;
vue.config.js配置proxy代理解决跨越;proxy代理报404;

三、总结:
配置代理一定要重启项目,否则会无效或者404
是否写pathRewrite,取决与后端给的接口是不是有公共的url部分,有的话可以不写;无的话自己配置个/myapi拼接在后端的url上,同时要将pathRewrite重写为 /

另一个参考文章来源地址https://www.toymoban.com/news/detail-401390.html

到了这里,关于vue.config.js配置proxy代理解决跨越;proxy代理报404;的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • vue.config.js中proxy配置

    这里以axios发请求为例 如果发送的请求都以 /abc 开头,那么我们就可以在proxy中进行服务器代理配置。 3.代理多个接口 方法1:监测多个接口,可以在proxy中写多个配置:(适用于target不同的代理,相同也可以用这个方法,就是会麻烦一点,对于相同的target方法2会比较方便)

    2024年02月22日
    浏览(28)
  • vue.config.js使用代理配置真实请求url

    前端请求接口过程中会统一配置代理请求url,配置之后浏览器只能看到local host路径。 为方便查看请求的真实ip,需要在vue.config.js中做如下配置,便能在浏览器实时查看到真实地址 配置完重启,效果如下:

    2024年02月13日
    浏览(35)
  • vue2的vue.config.js中简单配置代理跨域

    调用后端接口访问后台数据,但是因为请求url的协议、域名、端口三者之间任意一个与当前页面url不同产生了跨域,我们vue项目运行的地址一般就是localhost 8080端口,而且后端也没有配置允许跨域(后端如果配置跨域通常是cors),所以前端就要配置跨域,Vue跨域在vue.config.j

    2024年02月15日
    浏览(17)
  • Vite 配置代理 Proxy,Vue配置代理,解决前端跨域

    我们在做项目的时候经常会遇到跨域的问题,之所以会出现跨域问题是因为浏览器的同源策略,即协议、域名、端口需要一致,才可以访问服务端的资源。当一个请求地址(服务端的地址)的协议、域名、端口三者之间任意一个与当前页面地址(前端页面地址)不同即为跨域

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

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

    2024年02月07日
    浏览(44)
  • UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)

    UniApp 运行到浏览器的时候,接口会跨域报错,这里通过两种方式解决,第一:修改Uniapp自带的manifest.json 源码视图并进行配置h5设置。第二:在项目根目录新建vue.config.js并配置代理。 二选一即可。 修改或调整配置文件后,推荐重新运行,以防不生效。 配置完成后,请求接口

    2024年01月16日
    浏览(26)
  • vue2 vue3 配置代理 服务器返回404- 500的解决思路

    一、服务器返回500拒绝请求 1,服务器的服务没有起来 2,vue本地的代理地址填写错误,可能代理到别家的服务器了 正确的写法如下:(主要体现在ip地址和端口是否错误,当然也需要检查是否多了字母及符号。) http://112.59.21.18:8080 二、如果返回500,未找到页面404,说明是接口

    2024年02月16日
    浏览(30)
  • vite.config.js配置-解决跨域问题,以及@vitejs/plugin-vue等报错

    在配置的过程中踩了很多坑,还是太菜,有些东西弄不明白什么意思。 运行项目时的报错可直接到最下面看vite.config.js文件的注释 目前项目用到的模块并不多,package.json文件如下 其实主要还是这些模块的版本兼容问题 vite的版本最开始是1.0.0,后面很多地方搞不下去了才卸载

    2023年04月08日
    浏览(20)
  • vue配置代理服务器proxy 多种方法

    在Vue项目中配置代理服务器可以通过以下几种方法实现: 在Vue项目的根目录下创建一个vue.config.js文件,并添加以下代码: 上述代码中,我们使用 devServer 配置项来配置代理服务器。其中 proxy 属性用于配置代理的规则, /api 表示需要代理的接口路径。 target 属性表示代理的目

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

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

    2024年02月16日
    浏览(21)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包