Tomcat

时间:2015-10-14 20:02:13

标签: javascript api tomcat7 cors

我们有一个tomcat webserver(server1),它托管了几个包含JavaScripts的网页,用于调用托管在不同网络服务器(server2)上的后端API。

当我导航到server1上的网页时,它会抛出错误 -

"阻止跨源请求:同源策略禁止读取server2 / api上的远程资源。 (原因:CORS请求失败)。"

当我直接从POST客户端调用server2上的api时,我能够得到回复。

我知道我们必须在服务器上启用CORS。但是我们应该在哪个服务器上启用CORS?它是托管网页的Tomcat服务器(server1),还是托管API的API服务器(server2)?

此外,我们尝试按照http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter添加过滤器,在Tomcat上启用CORS 但这没有帮助。

请告知。

此致 Ritwik

1 个答案:

答案 0 :(得分:1)

CORS需要允许或拒绝呼叫的接收者。在您的方案中,您需要server2来允许server1的连接。

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

确保您的白名单包含正确的网址,例如https://server1:8081/,因为所有协议,主机和端口都需要匹配!

http://enable-cors.org/server_tomcat.html