Denodo 会支持 jsonp 还是 CORS
Posted
技术标签:
【中文标题】Denodo 会支持 jsonp 还是 CORS【英文标题】:Will Denodo support jsonp or CORS 【发布时间】:2015-06-15 00:22:51 【问题描述】:我有一个 denodo 返回 json 数据。我的 tomcat 域与 denodo 域不同。我不太清楚 denodo 是否支持 jsonp 或 CORS。如果它不支持,我需要使用更传统的代理 servlet 方法让 tomcat 访问来自其他域的数据。 如果有人有任何建议或解决方案,请告诉我
【问题讨论】:
【参考方案1】:CORS 支持:
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 容器。
我在这个链接中找到了这个信息:https://community.denodo.com/kb/view/document/Northbound%20Connections/CORS%20support%20on%20the%20embedded%20Apache%20Tomcat
JSONP 支持:
Denodo 确实提供了对 jsonp 的支持,正如文档中所解释的那样。 要获取带填充的 JSON,只需将参数 $jsoncallback 以及函数名称添加到 URL。
https://community.denodo.com/docs/view/document/Virtual%20DataPort/Denodo%205.5/Virtual%20DataPort%20Administration%20Guide
【讨论】:
谢谢,我认为它的工作。我用url...?$format=json&$jsoncallback=js_function
以上是关于Denodo 会支持 jsonp 还是 CORS的主要内容,如果未能解决你的问题,请参考以下文章