Попробуйте следующий блок вместо вашего.Браузер будет вызывать один раз с OPTIONS
, после чего запрос будет выполнен, как и ожидалось, после этого.
Вам не понадобится оператор if
, если вы отключили методы запроса - но я хотелчтобы получить полный блок на тот случай, если вы разместите его, как в примере Hello World .
if (req.method === "OPTIONS") {
console.log('!OPTIONS');
var headers = {};
// IE8 does not allow domains to be specified, just the *
// headers["Access-Control-Allow-Origin"] = req.headers.origin;
headers["Access-Control-Allow-Origin"] = "*";
headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
headers["Access-Control-Allow-Credentials"] = false;
headers["Access-Control-Max-Age"] = '86400'; // 24 hours
headers["Access-Control-Allow-Headers"] = "X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept";
res.writeHead(200, headers);
res.end();
}