mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-22 10:11:26 +00:00
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
module.exports = {
|
|
summary:function(){
|
|
return "the default rule for anyproxy, which supports CORS request";
|
|
},
|
|
|
|
shouldUseLocalResponse : function(req,reqBody){
|
|
|
|
//intercept all options request
|
|
if(req.method == "OPTIONS"){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
},
|
|
|
|
dealLocalResponse : function(req,reqBody,callback){
|
|
if(req.method == "OPTIONS"){
|
|
callback(200,mergeCORSHeader(req.headers),"");
|
|
}
|
|
},
|
|
|
|
replaceRequestProtocol:function(req,protocol){
|
|
},
|
|
|
|
replaceRequestOption : function(req,option){
|
|
},
|
|
|
|
replaceRequestData: function(req,data){
|
|
},
|
|
|
|
replaceResponseStatusCode: function(req,res,statusCode){
|
|
},
|
|
|
|
replaceResponseHeader: function(req,res,header){
|
|
return mergeCORSHeader(req.headers, header);
|
|
},
|
|
|
|
replaceServerResData: function(req,res,serverResData){
|
|
},
|
|
|
|
pauseBeforeSendingResponse : function(req,res){
|
|
},
|
|
|
|
shouldInterceptHttpsReq :function(req){
|
|
}
|
|
};
|
|
|
|
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;
|
|
} |