Мы отправляем запрос AJAX на сервер, работающий локально, т.е.
xhr.open("POST", "http://localhost:9000/context/request");
xhr.addHeader(someCustomHeaders);
xhr.send(someData);
Страница, выполняемая этим javascript, также отправляется с localhost: 9000, т.е. это полностью похоже на запрос того же происхождения.
Однако по какой-то причине Google Chrome всегда задает заголовок Origin в результате запроса, заставляя наш сервер блокировать запрос на основании ложного предположения, которое запросит CORS.
Это не происходит в Firefox.
Кроме того, ни Firefox, ни Chrome не отправляют запрос предварительной проверки OPTIONS, что путает; зачем устанавливать заголовок Origin без предварительного предпросмотра, чтобы сервер Origin и пользовательские заголовки разрешались сервером?
Кто-нибудь знает, что происходит в этом случае? Мы не понимаем специфика CORS?