• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    詳解Webpack-dev-server的proxy用法

    來源:懂視網 責編:小采 時間:2020-11-27 22:08:13
    文檔

    詳解Webpack-dev-server的proxy用法

    詳解Webpack-dev-server的proxy用法:前言 如果你有單獨的后端開發(fā)服務器 API,并且希望在同域名下發(fā)送 API 請求 ,那么代理某些 URL 會很有用。 解決開發(fā)環(huán)境的跨域問題(不用在去配置nginx和host, 爽歪歪~~) 在webpack.config.js中配置 下面簡單介紹一下五個經常使用的場景 使用一:
    推薦度:
    導讀詳解Webpack-dev-server的proxy用法:前言 如果你有單獨的后端開發(fā)服務器 API,并且希望在同域名下發(fā)送 API 請求 ,那么代理某些 URL 會很有用。 解決開發(fā)環(huán)境的跨域問題(不用在去配置nginx和host, 爽歪歪~~) 在webpack.config.js中配置 下面簡單介紹一下五個經常使用的場景 使用一:

    前言

    如果你有單獨的后端開發(fā)服務器 API,并且希望在同域名下發(fā)送 API 請求 ,那么代理某些 URL 會很有用。

    解決開發(fā)環(huán)境的跨域問題(不用在去配置nginx和host, 爽歪歪~~)

    在webpack.config.js中配置

    下面簡單介紹一下五個經常使用的場景

    使用一:

    mmodule.exports = {
     //...
     devServer: {
     proxy: {
     '/api': 'http://localhost:3000'
     }
     }
    };
    

    請求到 /api/xxx 現在會被代理到請求 http://localhost:3000/api/xxx, 例如 /api/user 現在會被代理到請求 http://localhost:3000/api/user

    使用二

    如果你想要代碼多個路徑代理到同一個target下, 你可以使用由一個或多個「具有 context 屬性的對象」構成的數組:

    module.exports = {
     //...
     devServer: {
     proxy: [{
     context: ['/auth', '/api'],
     target: 'http://localhost:3000',
     }]
     }
    };
    

    使用三:

    如果你不想始終傳遞 /api ,則需要重寫路徑:

    module.exports = {
     //...
     devServer: {
     proxy: {
     '/api': {
     target: 'http://localhost:3000',
     pathRewrite: {'^/api' : ''}
     }
     }
     }
    };
    

    請求到 /api/xxx 現在會被代理到請求 http://localhost:3000/xxx, 例如 /api/user 現在會被代理到請求 http://localhost:3000/user

    使用四:

    默認情況下,不接受運行在 HTTPS 上,且使用了無效證書的后端服務器。如果你想要接受,只要設置 secure: false 就行。修改配置如下:

    module.exports = {
     //...
     devServer: {
     proxy: {
     '/api': {
     target: 'https://other-server.example.com',
     secure: false
     }
     }
     }
    };
    

    使用五:

    有時你不想代理所有的請求。可以基于一個函數的返回值繞過代理。

    在函數中你可以訪問請求體、響應體和代理選項。必須返回 false 或路徑,來跳過代理請求。

    例如:對于瀏覽器請求,你想要提供一個 HTML 頁面,但是對于 API 請求則保持代理。你可以這樣做:

    module.exports = {
     //...
     devServer: {
     proxy: {
     '/api': {
     target: 'http://localhost:3000',
     bypass: function(req, res, proxyOptions) {
     if (req.headers.accept.indexOf('html') !== -1) {
     console.log('Skipping proxy for browser request.');
     return '/index.html';
     }
     }
     }
     }
     } 
    };
    

    解決跨域原理

    上面的參數列表中有一個changeOrigin參數, 是一個布爾值, 設置為true, 本地就會虛擬一個服務器接收你的請求并代你發(fā)送該請求,

    module.exports = {
     //...
     devServer: {
     proxy: {
     '/api': {
     target: 'http://localhost:3000',
     changeOrigin: true,
     }
     }
     }
    };
    

    vue-cli中proxyTable配置接口地址代理示例

    修改 config/index.js

    module.exports = {
     dev: {
     // 靜態(tài)資源文件夾
     assetsSubDirectory: 'static',
     // 發(fā)布路徑
     assetsPublicPath: '/',
    
     // 代理配置表,在這里可以配置特定的請求代理到對應的API接口
     // 使用方法:https://vuejs-templates.github.io/webpack/proxy.html
     proxyTable: {
     // 例如將'localhost:8080/api/xxx'代理到'https://wangyaxing.cn/api/xxx'
     '/api': {
     target: 'https://wangyaxing.cn', // 接口的域名
     secure: false, // 如果是https接口,需要配置這個參數
     changeOrigin: true, // 如果接口跨域,需要進行這個參數配置
     },
     // 例如將'localhost:8080/img/xxx'代理到'https://cdn.wangyaxing.cn/xxx'
     '/img': {
     target: 'https://cdn.wangyaxing.cn', // 接口的域名
     secure: false, // 如果是https接口,需要配置這個參數
     changeOrigin: true, // 如果接口跨域,需要進行這個參數配置
     pathRewrite: {'^/img': ''} // pathRewrite 來重寫地址,將前綴 '/api' 轉為 '/'。
     }
     },
     // Various Dev Server settings
     host: 'localhost', // can be overwritten by process.env.HOST
     port: 4200, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
    }

    更多參數

    dev-server 使用了非常強大的http-proxy-middleware , http-proxy-middleware 基于 http-proxy 實現的,可以查看 http-proxy 的源碼和文檔:https://github.com/nodejitsu/node-http-proxy。

  • target:要使用url模塊解析的url字符串
  • forward:要使用url模塊解析的url字符串
  • agent:要傳遞給http(s).request的對象(請參閱Node的https代理和http代理對象)
  • ssl:要傳遞給https.createServer()的對象
  • ws:true / false,是否代理websockets
  • xfwd:true / false,添加x-forward標頭
  • secure:true / false,是否驗證SSL Certs
  • toProxy:true / false,傳遞絕對URL作為路徑(對代理代理很有用)
  • prependPath:true / false,默認值:true - 指定是否要將目標的路徑添加到代理路徑
  • ignorePath:true / false,默認值:false - 指定是否要忽略傳入請求的代理路徑(注意:如果需要,您必須附加/手動)。
  • localAddress:要為傳出連接綁定的本地接口字符串
  • changeOrigin:true / false,默認值:false - 將主機標頭的原點更改為目標URL
  • 參考

    官方文檔
    http-proxy-middleware
    node-http-proxy
    API Proxying During Development

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    詳解Webpack-dev-server的proxy用法

    詳解Webpack-dev-server的proxy用法:前言 如果你有單獨的后端開發(fā)服務器 API,并且希望在同域名下發(fā)送 API 請求 ,那么代理某些 URL 會很有用。 解決開發(fā)環(huán)境的跨域問題(不用在去配置nginx和host, 爽歪歪~~) 在webpack.config.js中配置 下面簡單介紹一下五個經常使用的場景 使用一:
    推薦度:
    標簽: 使用 pro pr
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 欧美国产精品va在线观看| 四虎国产精品永久在线| 久久亚洲精品无码观看不卡| 精品亚洲A∨无码一区二区三区| 精品久久久久久国产牛牛app| 全球AV集中精品导航福利| 国产一在线精品一区在线观看| 成人国产精品一区二区网站| 中文字幕在线亚洲精品| 精品人妻少妇一区二区| 91亚洲国产成人久久精品| 国产成人亚洲综合无码精品| 日韩人妻精品无码一区二区三区 | 精品无码久久久久国产| 精品精品国产欧美在线小说区| 精品视频第一页| 国产午夜福利精品一区二区三区| 欧美久久久久久午夜精品 | 国产成人精品高清在线观看93 | 一区二区三区精品| 97精品国产福利一区二区三区| 久久亚洲精品成人AV| 中文国产成人精品久久不卡 | 国产精品99久久99久久久| 无码精品A∨在线观看| 日韩熟女精品一区二区三区| 国产三级精品三级在线观看专1| 欧美一区二区精品系列在线观看| 99久久er这里只有精品18| 国产亚洲精品a在线无码| 久久久久久九九99精品| 爽爽精品dvd蜜桃成熟时电影院| 中文字幕精品一区二区三区视频| 日本精品一区二区久久久| 久久精品国产一区二区三区| 精品日韩在线视频一区二区三区| 国产乱人伦偷精品视频不卡| 国产精品丝袜久久久久久不卡| 国产精品成人免费观看| 成人国产精品秘 果冻传媒在线| 日韩精品免费在线视频|