http proxy 代理

配合webpack 和 webpack-dev-server处理

  1. 安装
// 安装 
cnpm html-webpack-plugin --save -D
cnpm install webpack webpack-cli webpack-dev-server --save -D
  1. 新建src文件夹 新建文件 index.html 和 index.js
  2. 在index.js 发送一个请求
import axios from 'axios'

axios.get('http://127.0.0.1:3001/user').then(result=>{
    console.log(result)
})
  1. 新建webpack.config.js并配置
// 配置webpack.config.js
var path = require('path') // 绝对路径
const HtmlWebpackPlugin = require('html-webpack-plugin');// 打包html的插件

module.exports = {
    mode:'development', 
    // 入口文件
    entry: './src/index.js',
    // 出口文件
    output: {
        path:path.resolve(__dirname, 'build'), // 输出文件的存放路径
        filename: "bundle.js", //输出文件的名称
    },
    devServer:{
        port:3000,
        progress:true,
        contentBase:'./build',
    },
    plugins:[ // html产出插件的应用
        new HtmlWebpackPlugin({
            template:'./src/index.html',
            filename: 'index.html'
        })
    ]
}
  1. 新建一个server.js 服务 在里面写一个user接口
let express = require('express')
let app = express()

app.get('/user',(req,res)=>{
      res.json({name:'jack'})
})
app.listen(3001,function(){
      console.log("server is running 3001")
})
  1. package.jsonscripts 下配置
    "dev": "webpack-dev-server --open --host 127.0.0.1 --port 3000"
    这样打包完成的时候会自动开启3000端口的窗口

  2. 启动 server.js 服务 node server
    点击加号可以新开一个终端 下拉框可以切换终端
    在这里插入图片描述

  3. 切换终端 输入 npm run dev进行打包 打包成功会自动打开3000的窗口
    在这里插入图片描述
    这时候会看到控制台报错
    在这里插入图片描述

解决…:

webpack.config.js 配置 proxy 如下

proxy:{ //代理过滤 处理跨域
      '/':{ 
          // 意思所有这个地址的请求都以 / 发送到 http://localhost:3001下
            target:'http://localhost:3001',
            changeOrigin:true // 改变源
      }
}

在这里插入图片描述
再重新打包
npm run dev
就会看到数据了
在这里插入图片描述
一些快捷链接:

Webpack打包、配置

JSONP和JQuery实现跨域

CORS 跨域资源共享

发布了41 篇原创文章 · 获赞 2 · 访问量 1836

猜你喜欢

转载自blog.csdn.net/weixin_43883485/article/details/104784857