详解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动画效果-fadeIn fadeOut淡入浅出示例代码
Aug 28 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
Sep 18 Javascript
js实现弹窗插件功能实例代码分享
Dec 12 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 Javascript
JavaScript前补零操作实例
Mar 11 Javascript
jQuery日程管理插件fullcalendar使用详解
Jan 07 Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 Javascript
JS写谷歌浏览器chrome的外挂实例
Jan 11 Javascript
vue 修改 data 数据问题并实时显示的方法
Aug 27 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
JavaScript实现打字游戏
Feb 19 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
php第一次无法获取cookie问题处理
2014/12/15 PHP
简单实现php上传文件功能
2017/09/21 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
js点击页面其它地方将某个显示的DIV隐藏
2012/07/12 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
Python with的用法
2014/08/22 Python
python fabric使用笔记
2015/05/09 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python使用scipy模块实现一维卷积运算示例
2019/09/05 Python
python中open函数的基本用法示例
2019/09/07 Python
PyTorch实现AlexNet示例
2020/01/14 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
python的setattr函数实例用法
2020/12/16 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
广州品高软件.net笔面试题目
2012/04/18 面试题
有个性的自我评价范文
2013/11/15 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
前台文员岗位职责及工作流程
2013/11/19 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
森林防火标语
2014/06/23 职场文书
社会实践活动报告
2015/02/05 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书