详解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 写的简单进度条控件
Jan 22 Javascript
JS中confirm,alert,prompt函数使用区别分析
Apr 01 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
Feb 05 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
Oct 16 Javascript
前端微信支付js代码
Jul 25 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 Javascript
laydate 显示结束时间不小于开始时间的实例
Aug 11 Javascript
微信小程序页面上下滚动效果
Nov 18 Javascript
js实现3D旋转效果
Aug 18 Javascript
vue 函数调用加括号与不加括号的区别
Oct 29 Javascript
JavaScript语法约定和程序调试原理解析
Nov 03 Javascript
React中的Context应用场景分析
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
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
jQuery中:file选择器用法实例
2015/01/04 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python实现手机通讯录搜索功能
2018/02/22 Python
用python实现百度翻译的示例代码
2018/03/09 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python实现自动化上线脚本的示例
2019/07/01 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
Python Http请求json解析库用法解析
2020/11/28 Python
python如何构建mock接口服务
2021/01/28 Python
温泉秘密:Onsen Secret
2020/07/06 全球购物
个人求职简历的自我评价范文
2013/10/09 职场文书
服装设计专业毕业生推荐信
2013/11/09 职场文书
个人整改方案范文
2014/10/25 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
护士求职自荐信
2015/03/25 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers