diff --git a/README.md b/README.md index d878859..a8c200e 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ anyproxy ========== +another proxy written in NodeJS, which can handle HTTPS requests and CORS perfectly. Produced by Alipay-ct-wd. +Anyproxy是支付宝-创新终端技术部推出的一款基于NodeJS的web代理工具,用来解决HTTPS代理、跨域请求(CORS)等移动端调试中的常见问题。 + Feature ------------ * work as http or https proxy * generate and intercept https requests for any domain without complaint by browser (after you trust its root CA) -* support CROS-related http header, you could use make cross-domain requests via this proxy +* support CORS-related http header, you could use make cross-domain requests via this proxy * can be used globally or as a nodejs module diff --git a/lib/requestHandler.js b/lib/requestHandler.js index ff64fac..16502f3 100644 --- a/lib/requestHandler.js +++ b/lib/requestHandler.js @@ -40,7 +40,7 @@ function userRequestHandler(req,userRes){ if(req.method == "OPTIONS"){ console.log("==>OPTIONS req for CROS, will allow all"); - userRes.writeHead(200,mergeCROSHeader(req.headers)); //remove any cache related header, add crossdomain headers + userRes.writeHead(200,mergeCORSHeader(req.headers)); //remove any cache related header, add crossdomain headers userRes.end(); return; } @@ -94,7 +94,9 @@ function userRequestHandler(req,userRes){ }; var proxyReq = (ifHttps ? https : http).request(options, function(res) { - userRes.writeHead(res.statusCode,mergeCROSHeader(req.headers,res.headers)); + console.log(res.headers); + console.log(mergeCORSHeader(req.headers,res.headers)); + userRes.writeHead(res.statusCode,mergeCORSHeader(req.headers,res.headers)); res.pipe(userRes); }); @@ -184,13 +186,13 @@ function setRules(newRule){ } // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS -function mergeCROSHeader(reqHeader,originHeader){ +function mergeCORSHeader(reqHeader,originHeader){ var targetObj = originHeader || {}; - targetObj["Access-Control-Allow-Credentials"] = "true"; - targetObj["Access-Control-Allow-Origin"] = reqHeader['origin'] || "-___-||"; - targetObj["Access-Control-Allow-Methods"] = "GET, POST, PUT"; - targetObj["Access-Control-Allow-Headers"] = reqHeader['access-control-request-headers'] || "-___-||"; + targetObj["access-control-allow-credentials"] = "true"; + targetObj["access-control-allow-origin"] = reqHeader['origin'] || "-___-||"; + targetObj["access-control-allow-methods"] = "GET, POST, PUT"; + targetObj["access-control-allow-headers"] = reqHeader['access-control-request-headers'] || "-___-||"; return targetObj; } diff --git a/package.json b/package.json index 43d9a02..bd19d15 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "anyproxy", - "version": "1.2.2", + "version": "1.2.3", "description": "another proxy written in NODEJS, which can handle HTTPS requests and CROS perfectly", "main": "proxy.js", "bin": {