webpack 开发环境跨域代理配置指南

作者:脚本小铺

时间:2026-10-22

浏览:442

本文详解 webpack 开发环境中利用内置 http-proxy-middleware 解决跨域问题的方法。重点说明 proxy 配置中 pathname 必须以斜杠开头,否则代理不生效。通过具体代码示例展示如何配置目标地址、修改源及忽略证书验证,并对比带斜杠与不带斜杠的请求差异,帮助开发者快速配置本地开发代理。

文章目录

webpack 跨域代理配置

本文介绍 webpack 开发环境下解决跨域问题的具体方案,供参考。

1. 说明

webpack 内置了 模块,可用于处理请求 URL 的代理转发。

2. API

在配置代理路径时,pathname 必须包含前导斜杠。

代理配置示例


module.exports = {
  devtool: 'cheap-module-source-map',
  entry: './app/js/index.js'
  output: {
    path: path.resolve(__dirname, 'dev'),
    // 所有输出文件的目标路径
    filename: 'js/bundle.js',
    publicPath: '/',
    chunkFilename: '[name].chunk.js'
  },
  devServer: {
    contentBase: path.resolve(__dirname, 'dev'),
    publicPath: '/',
    historyApiFallback: true,
    proxy: {
      // 请求到 '/device' 下 的请求都会被代理到 target: http://debug.xxx.com 中
      '/device/*': { 
        target: 'http://debug.xxx.com',
        secure: false, // 接受 运行在 https 上的服务
        changeOrigin: true
      }
    }
  }
}

3. 使用

注意:配置中使用的 url 必须以斜杠开头,否则请求无法被正确代理到指定地址。

请求对比说明


  fetch('/device/space').then(res => {
    // 被代理到 http://debug.xxx.com/device/space
    return res.json();
  }).then(res => {
    console.log(res);
  })

  fetch('device/space').then(res => {
    // http://localhost:8080/device/space 访问本地服务
    return res.json();
  }).then(res => {
    console.log(res);
  })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章