test_accept_header.sjs (1971B)
1 function handleRequest(request, response) { 2 response.setStatusLine(request.httpVersion, "200", "OK"); 3 dump(`test_accept_header ${request.path}?${request.queryString}\n`); 4 5 if (request.queryString == "worker") { 6 setState( 7 "data", 8 JSON.stringify({ type: "worker", accept: request.getHeader("Accept") }) 9 ); 10 response.setHeader("Content-Type", "text/javascript", false); 11 response.write("postMessage(42)"); 12 return; 13 } 14 15 if (request.queryString == "image") { 16 // A 1x1 PNG image. 17 // Source: https://commons.wikimedia.org/wiki/File:1x1.png (Public Domain) 18 const IMAGE = atob( 19 "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAA" + 20 "ACnej3aAAAAAXRSTlMAQObYZgAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=" 21 ); 22 23 response.setHeader("Content-Type", "image/png", false); 24 response.write(IMAGE); 25 26 setState( 27 "data", 28 JSON.stringify({ type: "image", accept: request.getHeader("Accept") }) 29 ); 30 return; 31 } 32 33 if (request.queryString == "style") { 34 response.setHeader("Content-Type", "text/css", false); 35 response.write(""); 36 37 setState( 38 "data", 39 JSON.stringify({ type: "style", accept: request.getHeader("Accept") }) 40 ); 41 return; 42 } 43 44 if (request.queryString == "iframe") { 45 response.setHeader("Content-Type", "text/html", false); 46 response.write("<h1>Hello world!</h1>"); 47 48 setState( 49 "data", 50 JSON.stringify({ type: "iframe", accept: request.getHeader("Accept") }) 51 ); 52 return; 53 } 54 55 if (request.queryString == "json") { 56 response.setHeader("Content-Type", "application/json", false); 57 response.write('{"foo": true}'); 58 setState( 59 "data", 60 JSON.stringify({ type: "json", accept: request.getHeader("Accept") }) 61 ); 62 return; 63 } 64 65 if (request.queryString == "get") { 66 response.setHeader("Content-Type", "application/json", false); 67 response.write(getState("data")); 68 69 setState("data", ""); 70 } 71 }