详解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 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
xheditor与validate插件冲突的解决方案
Apr 15 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
location.href用法总结(最主要的)
Dec 27 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
jQuery编写网页版2048小游戏
Jan 06 Javascript
layDate日期控件使用方法详解
Nov 15 Javascript
vue的for循环使用方法
Feb 12 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
nginx部署多个vue项目的方法示例
Sep 06 Javascript
前端vue如何使用高德地图
Nov 05 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
杏林同学录(七)
2006/10/09 PHP
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
PHP判断浏览器、判断语言代码分享
2015/03/05 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python语言实现将图片转化为html页面
2017/12/06 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
质量承诺书格式
2014/05/20 职场文书
建筑施工安全责任书
2014/07/24 职场文书
员工工作自我评价
2014/09/26 职场文书
事业单位年度考核评语
2014/12/31 职场文书
公司给客户的感谢信
2015/01/23 职场文书
建议书范文
2015/02/05 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
简短清晨问候语
2015/11/10 职场文书