зеркало из https://github.com/mozilla/gecko-dev.git
67 строки
1.8 KiB
JavaScript
67 строки
1.8 KiB
JavaScript
/**
|
|
* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
"use strict";
|
|
|
|
function handleRequest(request, response) {
|
|
switch (request.method) {
|
|
case "POST":
|
|
try {
|
|
var optionsHost = request.getHeader("options-host");
|
|
} catch(e) { }
|
|
|
|
var headerFound = false;
|
|
if (optionsHost) {
|
|
setState("postHost", request.host);
|
|
setState("optionsHost", optionsHost);
|
|
headerFound = true;
|
|
}
|
|
|
|
try {
|
|
var emptyHeader = "nada" + request.getHeader("empty");
|
|
} catch(e) { }
|
|
|
|
if (emptyHeader && emptyHeader == "nada") {
|
|
setState("emptyHeader", "nada");
|
|
headerFound = true;
|
|
}
|
|
if (headerFound) {
|
|
return;
|
|
} else {
|
|
break;
|
|
}
|
|
|
|
case "OPTIONS":
|
|
if (getState("optionsHost") == request.host) {
|
|
try {
|
|
var optionsHeader =
|
|
request.getHeader("Access-Control-Request-Headers");
|
|
} catch(e) { }
|
|
setState("optionsHeader", "'" + optionsHeader + "'");
|
|
}
|
|
break;
|
|
|
|
case "GET":
|
|
response.setHeader("Cache-Control", "no-cache", false);
|
|
response.setHeader("Content-Type", "text/plain", false);
|
|
|
|
if (getState("postHost") == request.host &&
|
|
getState("emptyHeader") == "nada") {
|
|
var result = getState("optionsHeader");
|
|
if (result) {
|
|
response.write("Success: expected OPTIONS request with " + result +
|
|
" header");
|
|
} else if (getState("badGet") == 1) {
|
|
response.write("Error: unexpected GET request");
|
|
}
|
|
} else {
|
|
setState("badGet", "1");
|
|
response.write("Error: this response should never be seen");
|
|
}
|
|
return;
|
|
}
|
|
|
|
response.setStatusLine(request.httpVersion, 501, "Not Implemented");
|
|
}
|