Jesteśmy księgowania żądania AJAX do serwera uruchomiony lokalnie, tznChrome dodanie nagłówka pochodzenia do wniosku tego samego pochodzenia
xhr.open("POST", "http://localhost:9000/context/request");
xhr.addHeader(someCustomHeaders);
xhr.send(someData);
że strona ta javascript jest wykonywany jest również podawane z localhost: 9000, tj. to zupełnie wygląda na żądanie tego samego pochodzenia.
Jednak z jakiegoś powodu Google Chrome zawsze ustawia nagłówek Origin w wynikowym żądaniu, co powoduje, że nasz serwer blokuje żądanie na podstawie fałszywego założenia, że jest to żądanie CORS.
To nie dzieje się w przeglądarce Firefox.
Ponadto, ani Firefox, ani Chrome nie wysyłają żądania preflight OPTIONS, co jest mylące; dlaczego ustawić nagłówek Origin bez uprzedniego preflighting, aby upewnić się, że nagłówki Origin i Custom są dozwolone przez serwer?
Czy ktoś wie, co się dzieje w tym przypadku? Czy nie rozumiemy specyfikacji CORS?
Zobacz http://seclab.stanford.edu/websec/csrf/csrf.ppt, który odpowiada, dlaczego nagłówek Origin jest odpowiedni dla żądań POST o tym samym pochodzeniu. Jest to mechanizm ochrony CSRF. – user239558