form_submit.sjs (1029B)
1 "use strict"; 2 3 const CC = Components.Constructor; 4 const BinaryInputStream = CC( 5 "@mozilla.org/binaryinputstream;1", 6 "nsIBinaryInputStream", 7 "setInputStream" 8 ); 9 10 const BinaryOutputStream = CC( 11 "@mozilla.org/binaryoutputstream;1", 12 "nsIBinaryOutputStream", 13 "setOutputStream" 14 ); 15 16 function log() { 17 // dump(`LOG: ${str}\n`); 18 } 19 20 async function handleRequest(request, response) { 21 if (request.method !== "POST") { 22 throw new Error("Expected a post request"); 23 } else { 24 log("Reading request"); 25 let available = 0; 26 let inputStream = new BinaryInputStream(request.bodyInputStream); 27 while ((available = inputStream.available()) > 0) { 28 log(inputStream.readBytes(available)); 29 } 30 } 31 32 log("Setting Headers"); 33 response.setHeader("Content-Type", "text/html", false); 34 response.setStatusLine(request.httpVersion, "200", "OK"); 35 log("Writing body"); 36 response.write( 37 '<script>"use strict"; let target = opener ? opener : parent; target.postMessage("done", "*");</script>' 38 ); 39 log("Done"); 40 }