詳解webpack-dev-server 設置反向代理解決跨域問題
一、設置代理的原因
現(xiàn)在對前端開發(fā)的要求越來越高,并且隨著自動化以及模塊化的誕生,前后端開發(fā)模式越來越流行。后端只負責接口,前端負責數(shù)據(jù)展示、邏輯處理。但是前后端開發(fā)模式,有一個重要的問題,就是跨域問題。
二、如何配置webpack的代理
webpack代理需要另外一個插件:webpack-dev-server
webpack-dev-server配置代理非常的方便,只需要條件一個proxy屬性,然后配置相關的參數(shù)就可以了:
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', //設置端口號
//其實很簡單的,只要配置這個參數(shù)就可以了
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
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
JavaScript實現(xiàn)時間表動態(tài)效果
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)時間表動態(tài)效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Javascript中內(nèi)建函數(shù)reduce的應用詳解
內(nèi)建函數(shù)其實就是內(nèi)置函數(shù),reduce函數(shù)是ECMAScript5規(guī)范中出現(xiàn)的數(shù)組方法。在平時的工作中,相信大家使用的場景并不多,這篇文章給大家詳細介紹了函數(shù)reduce的應用以及多重疊加,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10
通過修改360搶票的刷新頻率和突破8車次限制實現(xiàn)方法
這篇文章主要介紹了通過修改360搶票的刷新頻率和突破8車次限制實現(xiàn)方法的相關資料,現(xiàn)在刷票工具很多,這里就舉一例修改,增加搶票頻率及突破8車次限制,需要的朋友可以參考下2017-01-01
JavaScript類型系統(tǒng)之基本數(shù)據(jù)類型與包裝類型
javascript的數(shù)據(jù)類型可以分為兩種:原始類型和引用類型,在此文給大家提到。本文主要給大家介紹javascript類型系統(tǒng)之基本數(shù)據(jù)類型與包裝類型,涉及到js 基本類型 包裝類相關知識,本文介紹的詳細,具有參考借鑒價值,對本文感興趣的朋友一起學習吧2016-01-01
淺談typescript中keyof與typeof操作符用法
本文主要介紹了typescript中keyof與typeof操作符用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06
JavaScript實現(xiàn)多維數(shù)組的方法
這篇文章主要介紹了JavaScript實現(xiàn)多維數(shù)組的方法,有需要的朋友可以參考一下2013-11-11
微信公眾號中的JSSDK接入及invalid signature等常見錯誤問題分析(全面解析)
這篇文章主要介紹了微信公眾號中的JSSDK接入及invalid signature等常見錯誤問題分析(全面解析),需要的朋友可以參考下2020-04-04

