Chúng tôi đang đăng một yêu cầu AJAX đến một máy chủ chạy cục bộ, tức làChrome thêm tiêu đề Xuất xứ yêu cầu cùng nguồn gốc
xhr.open("POST", "http://localhost:9000/context/request");
xhr.addHeader(someCustomHeaders);
xhr.send(someData);
Các trang đó javascript này đang được thực hiện cũng đang được phục vụ từ localhost: 9000, tức là điều này hoàn toàn giống như một yêu cầu cùng xuất xứ.
Tuy nhiên, vì một số lý do, Google Chrome luôn đặt tiêu đề Gốc trong yêu cầu kết quả, khiến máy chủ của chúng tôi chặn yêu cầu dựa trên giả định sai rằng yêu cầu CORS của nó.
Điều này không xảy ra trong Firefox.
Ngoài ra, cả Firefox và Chrome đều không gửi yêu cầu preflight OPTIONS, điều này gây nhầm lẫn; tại sao đặt tiêu đề Gốc không có đèn chiếu đầu tiên để đảm bảo rằng tiêu đề Gốc và Tiêu đề tùy chỉnh được máy chủ cho phép?
Có ai biết điều gì đang xảy ra trong trường hợp này không? Chúng ta có hiểu lầm thông số CORS không?
Xem http://seclab.stanford.edu/websec/csrf/csrf.ppt giải đáp tại sao tiêu đề Gốc là tốt cho các yêu cầu POST cùng nguồn gốc. Đây là một cơ chế bảo vệ CSRF. – user239558