详解webpack-dev-server 设置反向代理解决跨域问题


Posted in Javascript onApril 18, 2018

一、设置代理的原因

现在对前端开发的要求越来越高,并且随着自动化以及模块化的诞生,前后端开发模式越来越流行。后端只负责接口,前端负责数据展示、逻辑处理。但是前后端开发模式,有一个重要的问题,就是跨域问题。

 二、如何配置webpack的代理

webpack代理需要另外一个插件:webpack-dev-server 

webpack-dev-server配置代理非常的方便,只需要条件一个proxy属性,然后配置相关的参数就可以了:

var webpack = require('webpack');
var WebpackDevServer = require("webpack-dev-server");
var path = require('path');
var CURRENT_PATH = path.resolve(__dirname); // 获取到当前目录
var ROOT_PATH = path.join(__dirname, '../'); // 项目根目录
var MODULES_PATH = path.join(ROOT_PATH, './node_modules'); // node包目录
var BUILD_PATH = path.join(ROOT_PATH, './dist'); // 最后输出放置公共资源的目录
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = {

  //项目的文件夹 可以直接用文件夹名称 默认会找index.js ,也可以确定是哪个文件名字
  entry: {
    app: ['./src/js/index.js'],
    vendors: ['jquery', 'moment'], //需要打包的第三方插件
    // login:['./src/css/login.less']
  },

  //输出的文件名,合并以后的js会命名为bundle.js
  output: {
    path: path.join(__dirname, "dist/"),
    publicPath: "http://localhost:8088/dist/",
    filename: "bundle_[name].js"
  },
  devServer: {
    historyApiFallback: true,
    contentBase: "./",
    quiet: false, //控制台中不输出打包的信息
    noInfo: false,
    hot: true, //开启热点
    inline: true, //开启页面自动刷新
    lazy: false, //不启动懒加载
    progress: true, //显示打包的进度
    watchOptions: {
      aggregateTimeout: 300
    },
    port: '8088', //设置端口号
    //其实很简单的,只要配置这个参数就可以了
    proxy: {
      '/index.php': {
        target: 'http://localhost:80/index.php',
        secure: false
      }
    }
  } 
..........
};

上面实例中我们把本地的端口号设置为了:8088,如果这个时候接口放在了端口为80的服务器上,并且我们请求的接口url如下:http://localhost:80/index.php

 这个时候只需要在proxy使用正则表达式匹配/index.php,然后 匹配到 转向target设置的目标接口;这个时候使用ajax请求接口就不要写上目标接口的域名,只需要写上index.php就可以了。

$.ajax({
    type: 'GET',
    url: '/index.php',
    data: {},
    dataType: 'json',
    beforeSend: function () {
    },
    success: function (data) {

    },
    error: function (error) {

    }
  });

上面ajax请求的时候proxy 代理就会自动转向target设置的接口路径:http://localhost:80/index.php

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

Javascript 相关文章推荐
制作高质量的JQuery Plugin 插件的方法
Apr 20 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
仿JQuery输写高效JSLite代码的一些技巧
Jan 13 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
Three.js快速入门教程
Sep 09 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
Vue.js实现网格列表布局转换方法
Aug 25 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
vue filter 完美时间日期格式的代码
Aug 14 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
Apr 26 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 Javascript
jQuery实现的两种简单弹窗效果示例
Apr 18 #jQuery
vue双向数据绑定知识点总结
Apr 18 #Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 #Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 #Javascript
JS实现二维数组横纵列转置的方法
Apr 17 #Javascript
redux中间件之redux-thunk的具体使用
Apr 17 #Javascript
Vue进度条progressbar组件功能
Apr 17 #Javascript
You might like
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
jQuery示例收集
2010/11/05 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
JavaScript中string转换成number介绍
2014/12/31 Javascript
基于jQuery 实现bootstrapValidator下的全局验证
2015/12/07 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
jQuery输入框密码的显示隐藏【代码分享】
2017/04/29 jQuery
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
详解python中list的使用
2019/03/15 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
UDP协议功能
2013/01/06 面试题
优秀求职信范文分享
2013/12/19 职场文书
培训主管岗位职责
2014/02/01 职场文书
如何写一份好的英文求职信
2014/03/19 职场文书
文明寝室申报材料
2014/05/12 职场文书
项目转让协议书
2014/10/27 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
MySQL分区表实现按月份归类
2021/11/01 MySQL