详解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 相关文章推荐
写入cookie的JavaScript代码库 cookieLibrary.js
Oct 24 Javascript
Jquery选择子控件"大于号"和" "区别介绍及使用示例
Jun 25 Javascript
IE、FF浏览器下修改标签透明度
Jan 28 Javascript
60个很实用的jQuery代码开发技巧收集
Dec 15 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
Jun 01 Javascript
JS实现的论坛Ajax打分效果完整实例
Oct 31 Javascript
JS实现图片局部放大或缩小的方法
Aug 20 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 Javascript
Vue-Router2.X多种路由实现方式总结
Feb 09 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
JS数据类型STRING使用实例解析
Dec 18 Javascript
node.JS二进制操作模块buffer对象使用方法详解
Feb 06 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生成html文件方法总结
2014/12/01 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
php跨域调用json的例子
2013/11/13 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python根据距离和时长计算配速示例
2014/02/16 Python
python自动zip压缩目录的方法
2015/06/28 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Raleigh兰令自行车美国官网:英国凤头牌自行车
2018/01/08 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
财务部副经理岗位职责
2014/03/14 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
高中家长意见怎么写
2015/06/03 职场文书
社会实践单位意见
2015/06/05 职场文书
高中班长竞选稿
2015/11/20 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android