JSFiddle - React, Tailwind, and code Playground
JavaScript
chrome = chrome != null ? chrome : browser;
var corsRequestHeaders = {
"origin": "",
"access-control-request-method": "",
"access-control-request-headers": ""
};
var corsResponseHeaders = {
"access-control-allow-origin": "origin",
"access-control-allow-method": "access-control-request-method",
"access-control-allow-headers": "access-control-allow-headers",
"access-control-allow-credentials": "true"
}
var savedRequestsHeaders = {};
var requestListener = function(details){
var lcorsHeaders = {}
var newRequestHeaders = []
for (let header of details.requestHeaders) {
if (header.name.toLowerCase() in corsRequestHeaders) {
lcorsHeaders[header.name.toLowerCase()] = header.value;
}
}
if("origin" in lcorsHeaders){
savedRequestsHeaders[details.requestId] = lcorsHeaders
}
return {
requestHeaders: details.requestHeaders
};
}
var responseListener = function(details){
if(details.requestId in savedRequestsHeaders){
let newResponseHeaders = []
for(let header of details.responseHeaders){
if(!(header.name.toLowerCase() in corsResponseHeaders)){
newResponseHeaders.push(header)
}
}
for(let header in savedRequestsHeaders[details.requestId]){
switch(header){
case "origin":
newResponseHeaders.push({
name: "Access-Control-Allow-Origin",
value: savedRequestsHeaders[details.requestId][header]
});
break;
case "access-control-request-method":
newResponseHeaders.push({
name: "Access-Control-Allow-Methods",
value: savedRequestsHeaders[details.requestId][header]
});
newResponseHeaders.push({
name: "Allow",
value: savedRequestsHeaders[details.requestId][header]
});
break;
case "access-control-request-headers":
newResponseHeaders.push({
name: "Access-Control-Allow-Headers",
value: savedRequestsHeaders[details.requestId][header]
});
break;
default:
break;
}
}
newResponseHeaders.push({
name:...