通常,這些跨域問題與瀏覽器有關,而不是服務器。瀏覽器將限制您使用AJAX更新到您所在頁面的域的能力。有一些解決方法,如JSONP,但我不知道這是否可以用於POST。
我們決定使用第三方代理庫HTTP Proxy Servlet。這個代理servlet允許您像使用簡單的web.xml添加到本地可訪問的域一樣進行POST。做到這一點,我們永遠不必惹JSONP,只要直JSON工作正常。
我們正在使用它來轉發幾個不同的路徑到幾個不同的服務器(您可以在同一個Web應用程序中使用此方法的多個轉發器)。我們的web.xml文件僅僅是一系列的servlet映射(每個外部RESTful服務指向基路徑):
<servlet>
<servlet-name>MyOneProxy</servlet-name>
<servlet-class>org.mitre.dsmiley.httpproxy.ProxyServlet</servlet-class>
<init-param>
<param-name>targetUri</param-name>
<param-value>http://external-web-app.com/basePath</param-value>
</init-param>
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyOneProxy</servlet-name>
<url-pattern>/internalBasePath/*</url-pattern>
</servlet-mapping>
你是說,如果你使用GET網絡調用工作正常,但如果你打開它發佈它失敗?創建一個可能沒有參數的基本Web服務方法並進行POST調用。我更可能猜測你的問題與你傳遞的參數有關。你是將它們傳遞給查詢字符串還是消息正文? – Martin
我第二@Martin。如果它適用於'GET's,儘管不能保證,它*應該*也適用於'POST'。你不需要做一些配置來啓用'GET'嗎?您是否確定要發送'POST'所需的所有內容? – acdcjunior