当前位置: 首页 > news >正文

webpack-dev-server 设置反向代理解决跨域问题

一、设置代理的原因


现在对前端开发的要求越来越高,并且随着自动化以及模块化的 诞生,前后端开发模式越来越流行。后端只负责接口,前端负责数据展示、逻辑处理。但是前后端开发模式,有一个重要的问题,就是跨域问题。

 

二、如何配置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

转载于:https://www.cnblogs.com/liuchuanfeng/p/6802598.html

相关文章:

  • CF364
  • jsp相关笔记(二)
  • CPU组成
  • 【Java并发编程】:加锁和volatile变量
  • expdp/impdp 参数说明,中英对照
  • 数据结构第11周笔记
  • for...in
  • 自学前端开发 新版css时钟效果图
  • UVA10129 Play on Words —— 欧拉回路
  • [Apio2012]dispatching 左偏树
  • 杭电1007-----C语言实现
  • 解决云服务器ECS,windows server 2012不能安装SQL Server 2012,不能安装.NET Fromework 3.5...
  • 自适应相关知识点1
  • JavaScript 原型链
  • Mysql数据库批量添加数据
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • CAP理论的例子讲解
  • Consul Config 使用Git做版本控制的实现
  • ES2017异步函数现已正式可用
  • Java编程基础24——递归练习
  • JSONP原理
  • Median of Two Sorted Arrays
  • Nacos系列:Nacos的Java SDK使用
  • nfs客户端进程变D,延伸linux的lock
  • Python十分钟制作属于你自己的个性logo
  • ucore操作系统实验笔记 - 重新理解中断
  • ViewService——一种保证客户端与服务端同步的方法
  • Vue UI框架库开发介绍
  • yii2中session跨域名的问题
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 产品三维模型在线预览
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 基于web的全景—— Pannellum小试
  • 技术发展面试
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 双管齐下,VMware的容器新战略
  • 算法-插入排序
  • 学习使用ExpressJS 4.0中的新Router
  • NLPIR智能语义技术让大数据挖掘更简单
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (第一天)包装对象、作用域、创建对象
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (黑马C++)L06 重载与继承
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十六)串口UART
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)Oracle存储过程编写经验和优化措施
  • .net Application的目录
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)