vue-cli 代理服务器

ajax请求后台数据,必须要遵循同源策略:协议名、主机名、端口号必须要一致。很多情况下,后端项目和前端项目并没有部署到同一个服务器,即便部署到了同一个服务器,由于是两个项目,端口号也会不一样,此时前端项目向后端项目请求资源,就违反了同源策略。此时需要后台项目允许跨域。
前台服务器向后台服务器请求数据,通过代理服务器。前台服务器向代理服务器发送ajax请求,代理服务器采用原生http方式请求后台服务器
// 导入express
let express = require("express");
// 创建一个服务器对象
let app = express();
// 开启一个端口号
app.listen(5566, () => {
  console.log("服务器成功开启!端口号5566");
});

//配置中间件,拦截所有的请求
app.use((req, res, next) => {
  //允许跨域
  // res.setHeader("Access-Control-Allow-Origin", "*");
  next();
});

//学生数组
let stus = [
  {
    no: "1001",
    name: "张三",
    age: 20,
    sex: "男",
  },
  {
    no: "1002",
    name: "李四",
    age: 22,
    sex: "女",
  },
  {
    no: "1003",
    name: "王五",
    age: 24,
    sex: "男",
  },
]

// 定义一个get请求接口
app.get("/list", (req, res) => {
  res.send(stus);
});
// 导入express
let express = require("express");
// 创建一个服务器对象
let app = express();
// 开启一个端口号
app.listen(7788, () => {
  console.log("服务器成功开启!端口号7788");
});

//配置中间件,拦截所有的请求
app.use((req, res, next) => {
  //允许跨域
  // res.setHeader("Access-Control-Allow-Origin", "*");
  next();
});

//汽车数组
let cars = [
    {
      id: "1001",
      name: "奔驰"
    },
    {
      id: "1002",
      name: "宝马"
    },
    {
      id: "1003",
      name: "奥迪"
    },
  ]

// 定义一个get请求接口
app.get("/list", (req, res) => {
  res.send(cars);
});

配置代理服务器

module.exports = {
    //取消eslint语法检查
    lintOnSave:false,
    //devServer是脚手架中的开发服务器
    devServer:{
        //配置主机名
        host:'localhost',
        //配置端口号
        port:'8080',
        //在开发服务器中,配置一个代理服务器地址。
        //注意:在开发阶段,通过向当前开发服务器发送ajax请求,当前服务器会将请求转发给配置的代理服务器地址。
        // proxy:'http://localhost:5566'
        // 配置多个代理服务器地址
        proxy:{
            // /stu是前缀
            '/stu':{
                //代理的地址
                target:'http://localhost:5566',
                //路径重写,因为向真实的后台发送请求时,不需要加前缀
                pathRewrite:{
                    //将地址中,/stu替换成空
                    '^/stu':''
                }
            },
            '/car':{
                target:'http://localhost:7788',
                pathRewrite:{
                    '^/car':''
                }
            }
        }
    },
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容