我有一个denodo返回json数据。我的tomcat域不同于denodo域。我不知道denodo是否会支持jsonp或CORS。如果它不支持我需要采用更传统的代理servlet方法让tomcat访问来自其他域的数据。 如果有人有任何建议或解决方案,请告诉我
答案 0 :(得分:4)
Denodo使用Apache Tomcat作为其嵌入式Web容器。为了使CORS能够提供所提供的服务,您需要配置此Tomcat。由于使用的版本早于7.0,因此在此tomcat中不直接支持CORS过滤器。你必须提供一个外部的。
例如,您可以使用此实现: software.dzhuvinov.com/cors-filter.html
并将来自CORS-filter的jar文件cors-filter-.jar和java-property-utils-.jar文件放在:/ resources / apache-tomcat / common / lib
要为特定的REST Web服务启用CORS,您必须在Web服务的web.xml文件中添加这样的过滤器:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/views/*</url-pattern>
</filter-mapping>
将此过滤器添加为过滤器部分中的第一个过滤器,然后重新启动Web容器。
Denodo确实为jsonp提供了支持,因为它在文档中有解释。 要使用填充获取JSON,只需将参数$ jsoncallback与函数名称一起添加到URL中。