function handleRequest(request, response) { var query = {}; request.queryString.split("&").forEach(function (val) { var [name, value] = val.split("="); query[name] = unescape(value); }); if ("setState" in query) { setState( "test/dom/security/test_CrossSiteXHR_cache:secData", query.setState ); response.setHeader("Cache-Control", "no-cache", false); response.setHeader("Content-Type", "text/plain", false); response.write("hi"); return; } var isPreflight = request.method == "OPTIONS"; // Send response secData = JSON.parse( getState("test/dom/security/test_CrossSiteXHR_cache:secData") ); if (secData.allowOrigin) { response.setHeader("Access-Control-Allow-Origin", secData.allowOrigin); } if (secData.withCred) { response.setHeader("Access-Control-Allow-Credentials", "true"); } if (isPreflight) { if (secData.allowHeaders) { response.setHeader("Access-Control-Allow-Headers", secData.allowHeaders); } if (secData.allowMethods) { response.setHeader("Access-Control-Allow-Methods", secData.allowMethods); } if (secData.cacheTime) { response.setHeader( "Access-Control-Max-Age", secData.cacheTime.toString() ); } return; } response.setHeader("Cache-Control", "no-cache", false); response.setHeader("Content-Type", "application/xml", false); response.write("hello pass\n"); }