fix case letter problem with allow-xx

This commit is contained in:
加里 2014-08-22 15:34:52 +08:00
parent 722f38ecf6
commit 1377ea2326
3 changed files with 14 additions and 9 deletions

View File

@ -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

View File

@ -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;
}

View File

@ -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": {