beacon-preflight-handler.sjs (1222B)
1 function handleRequest(request, response) { 2 response.setHeader("Cache-Control", "no-cache, must-revalidate", false); 3 4 if (request.queryString === "verify") { 5 var preflightState = getState("preflight"); 6 response.write(preflightState === "done" ? "green" : "red"); 7 return; 8 } 9 10 var originHeader = request.getHeader("origin"); 11 response.setHeader("Access-Control-Allow-Headers", "content-type", false); 12 response.setHeader("Access-Control-Allow-Methods", "POST, GET", false); 13 response.setHeader("Access-Control-Allow-Origin", originHeader, false); 14 response.setHeader("Access-Control-Allow-Credentials", "true", false); 15 16 if (request.queryString === "beacon") { 17 if (request.method == "OPTIONS") { 18 setState("preflight", "done"); 19 response.setStatusLine(null, 200, "OK"); 20 return; 21 } 22 response.setStatusLine(null, 200, "OK"); 23 response.write("DONE"); 24 return; 25 } 26 27 if (request.queryString === "fail") { 28 if (request.method == "OPTIONS") { 29 setState("preflight", "done"); 30 response.setStatusLine(null, 400, "Bad Request"); 31 return; 32 } 33 setState("preflight", "oops"); 34 response.setStatusLine(null, 200, "OK"); 35 response.write("DONE"); 36 } 37 }