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