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&amp;$jsoncallback=js_function

以上是关于Denodo 会支持 jsonp 还是 CORS的主要内容,如果未能解决你的问题,请参考以下文章

跨域 JSONP, CORS

Spring Boot CORS支持

使用 CORS 和 JSONP 提供内容

springBoot:web开发-CORS支持

jsonp-反向代理-CORS解决JS跨域问题的个人总结

跨域访问JSONP CORS