2011-12-01 19 views
6

我正在嘗試爲實現CORS的Web服務創建一些測試。所以,我需要發送Origin頭文件。當我打電話給addRequestProperty("origin", origin)時,起源標題似乎沒有出現在服務器上。我說'看起來' - 我有一個servlet遍歷所有打印出來的頭文件,並沒有出現。我還沒有一直到TCPMon或通過普通套接字連接發送請求。HttpUrlConnection是否檢查某些標題,特別是Origin?

爲HttpURLConnection的Javadoc中沒有提到我見過的任何限制,但我可能跳過了關鍵的句子。這是一個衆所周知的限制嗎?

+0

你在運行你的servlet的是什麼webserver?有沒有代理或其他網絡服務器? –

+0

你在設置'origin'還是'Origin'? – Gian

回答

6

我發現http://javasourcecode.org/html/open-source/jdk/jdk-6u23/sun/net/www/protocol/http/HttpURLConnection.java.html

筆者,巧妙,決定禁止產地等CORS相關的頭,而不實際執行CORS規範。這非常令人沮喪。

+1

查看該代碼,可以使用'sun.net.http.allowRestrictedHeaders'系統屬性來啓用設置這些標題。 – jtahlborn

+0

是的,但只有當你願意在你第一次連接之前設置它並永不改變它。幸運的是,Apache HttpClient是一個解決方案。 – bmargulies

+0

提供的鏈接不再有效。作爲參考,這是一個更新的鏈接到[其中一條相關的行](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7u40-b43/sun/net/www /protocol/http/HttpURLConnection.java#235)在grepcode。 –

相關問題