anyproxy/lib/rule_default.js

62 lines
1.7 KiB
JavaScript
Raw Normal View History

module.exports = {
2014-09-03 15:39:31 +08:00
summary:function(){
2014-09-11 10:22:08 +08:00
return "the default rule for anyproxy, which supports CORS request";
2014-09-03 15:39:31 +08:00
},
2014-09-02 14:54:45 +08:00
shouldUseLocalResponse : function(req,reqBody){
2014-09-11 10:22:08 +08:00
2014-09-02 15:59:58 +08:00
//intercept all options request
if(req.method == "OPTIONS"){
return true;
}else{
return false;
}
},
2014-09-02 14:54:45 +08:00
dealLocalResponse : function(req,reqBody,callback){
2014-09-02 15:59:58 +08:00
if(req.method == "OPTIONS"){
callback(200,mergeCORSHeader(req.headers),"");
}
2014-09-02 14:54:45 +08:00
},
replaceRequestProtocol:function(req,protocol){
},
replaceRequestOption : function(req,option){
},
2014-09-02 14:54:45 +08:00
replaceRequestData: function(req,data){
},
replaceResponseStatusCode: function(req,res,statusCode){
},
replaceResponseHeader: function(req,res,header){
2014-09-02 15:59:58 +08:00
return mergeCORSHeader(req.headers, header);
},
replaceServerResData: function(req,res,serverResData){
},
pauseBeforeSendingResponse : function(req,res){
},
shouldInterceptHttpsReq :function(req){
}
2014-09-02 15:59:58 +08:00
};
function mergeCORSHeader(reqHeader,originHeader){
var targetObj = originHeader || {};
delete targetObj["Access-Control-Allow-Credentials"];
delete targetObj["Access-Control-Allow-Origin"];
delete targetObj["Access-Control-Allow-Methods"];
delete targetObj["Access-Control-Allow-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;
}