2017-05-26 78 views
0

我有使用Java Spring編寫的後端Web服務並部署在tomcat服務器上,說明帶有HTTPS協議的端口8443上的IP地址XXX.XXX.XXX.XXX。NodeJS服務器與Tomcat服務器之間的CORS問題

而且我有使用React JS和create-react-app scaffold編寫的前端應用程序,該應用程序使用jQuery AJAX消耗由JAVA spring應用程序公開的其餘api服務。我已經構建了js文件並捆綁在一起,並通過簡單的節點服務器提供服務。此節點服務器託管在端口8443上的IP地址YYY.YYY.YYY.YYY上。

從瀏覽器通過前端,我正試圖打開POST調用,並且它在預先飛行操作時失敗請求方法爲OPTIONS。

嘗試通過HTTPS協議服務YYY.YYY.YYY.YYY並面臨同樣的問題。

Spring應用程序啓用CORS篩選並接受來自任何域的請求。

需要專家建議誰遇到過相同的問題以及如何修復。

+1

添加配置以顯示「Spring應用程序啓用了CORS篩選並接受來自任何域的請求。」 – StanislavL

回答

0

這是一個簡單的解決方案的一個非常普遍的問題。幾周前我遇到過這個問題。這是我如何修復它。在您的tomcat web.xml文件中添加以下過濾器。

<filter> 
<filter-name>CorsFilter</filter-name> 
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
    <init-param> 
    <param-name>cors.allowed.origins</param-name> 
    <param-value>*</param-value> 
</init-param> 
<init-param> 
    <param-name>cors.allowed.methods</param-name> 
    <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value> 
</init-param> 
<init-param> 
    <param-name>cors.allowed.headers</param-name> 
    <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control- 
Request-Method,Access-Control-Request-Headers,Authorization,Content- 
Disposition</param-value> 
</init-param> 
<init-param> 
    <param-name>cors.exposed.headers</param-name> 
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow- 
    Credentials,Content-Disposition</param-value> 
    </init-param> 
<init-param> 
    <param-name>cors.support.credentials</param-name> 
    <param-value>true</param-value> 
</init-param> 
<init-param> 
    <param-name>cors.preflight.maxage</param-name> 
    <param-value>10</param-value> 
</init-param> 
</filter> 
<filter-mapping> 
<filter-name>CorsFilter</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 

而且這應該可以解決您的問題。享受