摘要:前端獲取數(shù)據(jù)時經(jīng)常遇見跨域問題,以前一直用做反向代理。最近在用,發(fā)現(xiàn)的代理簡單好用。于是仿照寫了一個簡單的服務(wù)器,用于非的項目。交流學(xué)習(xí)圈交流學(xué)習(xí)圈
前端獲取數(shù)據(jù)時經(jīng)常遇見跨域問題,以前一直用nginx做反向代理。最近在用vuejs,發(fā)現(xiàn)webpack-dev-server的代理簡單好用。于是仿照寫了一個簡單的web服務(wù)器,用于非webpack的項目。
1 const request = require("request"); 2 const express = require("express"); 3 const path = require("path"); 4 5 const app = express(); 6 7 const proxyTable = { 8 "/wcf": { 9 target: " 10 } 11 };交流學(xué)習(xí)圈582735936 12 13 app.use(function(req, res,next) { 14 const url = req.url; 15 if (req.method == "OPTIONS") { 16 console.log("options_url: ", url); 17 18 // res.header("Access-Control-Allow-Origin", req.headers.origin || "*"); 19 // res.header("Access-Control-Allow-Headers", "Content-Type, Authorization, X-Requested-With"); 20 // res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS"); 21 22 // res.header("Access-Control-Allow-Credentials", true); 23 24 res.status(200).send("OK"); 25 return; 26 } 27 28 // console.log("req_url: ", url); 29 next(); 30 }); 31 32 33 app.use(express.static(path.join(__dirname, "static"))); 34 35 app.use("/", function(req, res) { 36 const url = req.url; 37 const proxy = Object.keys(proxyTable); 38 let not_found = true; 39 for (let index = 0; index < proxy.length; index++) { 40 const k = proxy[index]; 41 const i = url.indexOf(k); 42 if (i >= 0) { 43 not_found = false; 44 const element = proxyTable[k]; 45 const newUrl = element.target + url.slice(i+k.length); 46 req.pipe(request({url: newUrl, timeout: 60000},(err)=>{ 47 if(err){ 48 console.log("error_url: ", err.code,url); 49 res.status(500).send(""); 50 } 51 })).pipe(res); 52 break; 53 } 54 }交流學(xué)習(xí)圈582735936 55 if(not_found) { 56 console.log("not_found_url: ", url); 57 res.status(404).send("Not found"); 58 } else { 59 console.log("proxy_url: ", url); 60 } 61 }); 62 63 const PORT = 8080; 64 app.listen(PORT, () => { 65 console.log 66 });
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/99418.html
摘要:前端獲取數(shù)據(jù)時經(jīng)常遇見跨域問題,以前一直用做反向代理。最近在用,發(fā)現(xiàn)的代理簡單好用。于是仿照寫了一個簡單的服務(wù)器,用于非的項目。交流學(xué)習(xí)圈交流學(xué)習(xí)圈 前端獲取數(shù)據(jù)時經(jīng)常遇見跨域問題,以前一直用nginx做反向代理。最近在用vuejs,發(fā)現(xiàn)webpack-dev-server的代理簡單好用。于是仿照寫了一個簡單的web服務(wù)器,用于非webpack的項目。 1 const request ...
摘要:安裝環(huán)境是運行在服務(wù)端的,基于引擎建立的平臺下載并安裝下載最新的穩(wěn)定版到本地這是當(dāng)前發(fā)布文章時最新的穩(wěn)定版本下載完后,將其解壓將解壓的目錄移動到目錄下配置軟連接到目錄配置和使用配置是的包管理和分發(fā)工具。 1、安裝node.js環(huán)境 node.js是運行在服務(wù)端的JavaScript,基于Chrome JavaScript V8引擎建立的平臺、 下載并安裝node.js下載最新的穩(wěn)定版v...
摘要:的官方下載地址點我進(jìn)入的官方下載地址下載電腦系統(tǒng)對應(yīng)文件,然后進(jìn)行安裝,安裝成功之后通過命令行工具進(jìn)入安裝目錄。注系統(tǒng)命令行工具通過開始菜單輸入打開,系統(tǒng)為終端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 漸進(jìn)式 JavaScript 框架 介紹 Vue.js 是什么 vue.js 是一套構(gòu)建用戶界面...
摘要:的官方下載地址點我進(jìn)入的官方下載地址下載電腦系統(tǒng)對應(yīng)文件,然后進(jìn)行安裝,安裝成功之后通過命令行工具進(jìn)入安裝目錄。注系統(tǒng)命令行工具通過開始菜單輸入打開,系統(tǒng)為終端。 showImg(https://segmentfault.com/img/bVPL6q?w=200&h=200); Vue — 漸進(jìn)式 JavaScript 框架 介紹 Vue.js 是什么 vue.js 是一套構(gòu)建用戶界面...
閱讀 3427·2021-09-26 09:46
閱讀 2782·2021-09-13 10:23
閱讀 3510·2021-09-07 10:24
閱讀 2388·2019-08-29 13:20
閱讀 2919·2019-08-28 17:57
閱讀 3072·2019-08-26 13:27
閱讀 1175·2019-08-26 12:09
閱讀 505·2019-08-26 10:27