2011-12-01 27 views
6

Tôi đang cố gắng tạo một số thử nghiệm cho một dịch vụ web triển khai CORS. Vì vậy, tôi cần gửi tiêu đề Gốc. Khi tôi gọi addRequestProperty("origin", origin), tiêu đề gốc dường như không xuất hiện ở máy chủ. Tôi nói 'có vẻ' - tôi có một servlet lặp qua tất cả các tiêu đề in chúng ra, và nó không xuất hiện. Tôi đã không đi tất cả các cách để TCPMon hoặc gửi yêu cầu trên một kết nối ổ cắm đơn giản.HttpUrlConnection có kiểm duyệt một số tiêu đề, đáng chú ý là Origin không?

javadoc cho HttpUrlConnection không đề cập đến bất kỳ giới hạn nào mà tôi đã thấy, nhưng tôi có thể đã bỏ qua một câu quan trọng. Đây có phải là giới hạn nổi tiếng không?

+0

Máy chủ web nào bạn đang chạy servlet của mình? Có bất kỳ proxy hoặc máy chủ web nào khác không? –

+0

Bạn có thiết lập 'origin' hoặc 'Origin' không? – Gian

Trả lời

6

Tôi đã tìm thấy http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/net/www/protocol/http/HttpURLConnection.java.html.

Tác giả, khéo léo, đã quyết định cấm Gốc và các tiêu đề liên quan đến CORS khác mà không thực sự triển khai đặc tả CORS. Nó khá buồn.

+1

xem mã đó, bạn có thể sử dụng thuộc tính hệ thống 'sun.net.http.allowRestrictedHeaders' để bật cài đặt các tiêu đề này. – jtahlborn

+0

Có, nhưng chỉ khi bạn sẵn sàng thiết lập nó trước khi bạn nhận được kết nối đầu tiên của bạn và không bao giờ thay đổi nó. May mắn thay, Apache HttpClient là một giải pháp. – bmargulies

+0

Liên kết được cung cấp không còn giá trị. Để tham khảo, đây là liên kết được cập nhật cho [một trong các dòng có liên quan] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/sun/net/www /protocol/http/HttpURLConnection.java#235) tại grepcode. –

Các vấn đề liên quan