详解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 相关文章推荐
javascript 动态加载 css 方法总结
Jul 11 Javascript
基于datagrid框架的查询
Apr 08 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
Feb 22 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
May 04 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
js HTML5多媒体影音播放
Oct 17 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
关于antd tree 和父子组件之间的传值问题(react 总结)
Jun 02 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
Django之模型层多表操作的实现
2019/01/08 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python retrying模块的使用方法详解
2019/09/25 Python
python通过链接抓取网站详解
2019/11/20 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python将unicode和str互相转化的实现
2020/05/11 Python
大数据分析用java还是Python
2020/07/06 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
2020/10/28 HTML / CSS
html5读取本地文件示例代码
2014/04/22 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
Java程序员常见面试题
2015/07/16 面试题
毕业生找工作推荐信
2013/11/21 职场文书
财务分析个人的自荐书范文
2013/11/24 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
劳资员岗位职责
2015/02/13 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
python turtle绘图命令及案例
2021/11/23 Python