千家信息网

vue proxyTable的跨域中pathRewrite怎么配置

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了vue proxyTable的跨域中pathRewrite怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue proxyTable的跨域中pa
千家信息网最后更新 2026年10月31日vue proxyTable的跨域中pathRewrite怎么配置

这篇文章主要介绍了vue proxyTable的跨域中pathRewrite怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue proxyTable的跨域中pathRewrite怎么配置文章都会有所收获,下面我们一起来看看吧。

    vue浏览器跨域问题和vue proxyTable跨域中pathRewrite配置

    vue浏览器跨域问题

    当浏览器报如下错误时,则说明请求跨域了。

    localhost/:1 Failed to load http://www.thenewstep.cn/test/testToken.php: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8080’ is therefore not allowed access. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

    为什么会跨域

    因为浏览器同源策略的限制,不是同源的脚本不能操作其他源下面的对象。

    什么是同源策略

    同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。

    可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

    简单的来说:协议、IP、端口三者都相同,则为同源

    解决办法

    跨域的解决办法有很多,比如script标签 、jsonp、后端设置cros等等…,但是我这里讲的是webpack配置vue 的 proxyTable解决跨域。

    pathRewrite

    简单来说,pathRewrite是使用proxy进行代理时,对请求路径进行重定向以匹配到正确的请求地址,

    dev: {    // Paths    assetsSubDirectory: 'static',    assetsPublicPath: '/',    proxyTable: {      '/api': {        target: 'http://XX.XX.XX.XX:8083',        changeOrigin: true,        pathRewrite: {          '^/api': '/api'   // 这种接口配置出来     http://XX.XX.XX.XX:8083/api/login          //'^/api': '/' 这种接口配置出来     http://XX.XX.XX.XX:8083/login        }      }    }  },

    如何不配置pathRewrite 请求就被转发到 http://XX.XX.XX.XX:8083 并把相应uri带上。

    比如:localhost:8080/api/xxx 会被转发到http://XX.XX.XX.XX:8083/api/xxx

    配置完成后需要重新编译一遍 , 调用接口的时候

            // 获取菜单权限      getPermission(){        this.$ajaxget({          url: '/api/getPermission',          data: {},          isLayer: true,          successFc: data => {            console.log(data.data)          }        })

    2种数据请求方式: fecth和axios

    1、fetch方式

    在需要请求的页面,只需要这样写(/apis+具体请求参数),如下:

    fetch("/apis/test/testToken.php", {      method: "POST",      headers: {        "Content-type": "application/json",        token: "f4c902c9ae5a2a9d8f84868ad064e706"      },      body: JSON.stringify(data)    })      .then(res => res.json())      .then(data => {        console.log(data);      });

    2、axios方式

    main.js代码

    import Vue from 'vue'import App from './App'import axios from 'axios'Vue.config.productionTip = falseVue.prototype.$axios = axios //将axios挂载在Vue实例原型上// 设置axios请求的tokenaxios.defaults.headers.common['token'] = 'f4c902c9ae5a2a9d8f84868ad064e706'//设置请求头axios.defaults.headers.post["Content-type"] = "application/json"

    axios请求页面代码

    this.$axios.post('/apis/test/testToken.php',data).then(res=>{        console.log(res)})

    代理配置proxy下pathrewrite失效踩坑

    从网上直接找到的代码复制过来报错,最后找了一下午为什么失效,最后发现问题直接破防了

    错误:

    pathRewrite: {   "  ^/api  "  : "" //若请求的路径在目标url下但不在/api 下,则将其转换成空  },

    正确:

    pathRewrite: {   "^/api": "" //若请求的路径在目标url下但不在/api 下,则将其转换成空   },

    原因:

    直接复制过来的 " ^/api " : ""里面多了两个空格,判断url的时候就获取不到/api,删除空格就解决问题了

    关于"vue proxyTable的跨域中pathRewrite怎么配置"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"vue proxyTable的跨域中pathRewrite怎么配置"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

    配置 同源 浏览器 浏览 策略 问题 代码 接口 方式 知识 路径 内容 办法 功能 时候 目标 空格 篇文章 错误 页面 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 鸠鸠互联网科技 广州互联网科技公司 齐家互联网科技 上海万想互联网科技 互联网科技博客 蓝色互联网科技 北京三清互联网科技 中国科技互联网公司收入 港股科技和互联网 青岛科技大学互联网大赛研究生 未来五年的互联网科技 互联网科技人工智能实验室 上海钢联属于互联网科技股吗 互联网与数字科技关系 互联网高科技行业有哪些企业 保山浩联互联网科技有限公司 广东猫王互联网科技有限公司电话 互联网科技自媒体灵感 广州全民伙伴互联网科技有限公司 南京欣网互联网络科技 互联网科技logo设计 中国互联网金融科技基金 华夏恒生互联网科技013171 山东子淼互联网科技有限公司 信承诺互联网科技有限公司 互联网金融运营模式中的金融科技 互联网时代高科技布局 山东蛋芒互联网科技有限公司 高科技和互联网的现代国家
    0