javascript - 直接从microstrategy获取导出的PDF文档

标签 javascript java microstrategy

这是我的情况: 我有第三部分,它使用一个名为 microstrategy 的软件,该软件能够生成文档并允许将其导出为 PDF 或 Excel 文件。他们只向我提供该产品的 Web api,而我没有任何可以使用的 Web 服务。

网址如下:

http://<third_part_domain>/microstrategy/asp/Main.aspx?Server=<third_part_domain>&Project=<project_name>&evt=3069&src=Main.aspx.3069&executionMode=3&promptAnswerMode=1&documentID=<doc_id>&uid=<username>&pwd=<password>&<other_parameters_for_request>

我尝试通过java代码获取文件(我必须保存在服务器端),但是我们使用的链接的响应是一个HTML页面,其中包含一些执行多个重定向的Javascript代码,所以我可以没有正确解释响应,我应该使用浏览器来获取 PDF。

所以我想将页面放入 iframe 中,一段时间后(通常服务器需要 20 秒)通过 javascript 代码获取 PDF 对象并发送给我的服务器。但显然第三部分有另一个域,并且 CORS 策略阻止了一切。更糟糕的是,我无法使用最终的 url 来获取该文件,因为 microstrategy 使用管理控制台的内部页面响应我。

所以,这就是我的问题:

有没有办法(不在microstrategy服务器端)直接从microstrategy获取PDF?

或者存在一种从客户端绕过源控制问题的方法?我已经评估过实现代理解决方案,但它太昂贵了。

谢谢大家!

最佳答案

要使用 URL 从 MicroStrategy 下载 PDF,您需要满足两件事:

  1. 在文档属性中将默认可视化设置为 PDF。这是非常简单的事情,我认为任何精通 MicroStrategy 的同事都可以为您提供帮助。

  2. 禁用等待页面,这个比较复杂。 MicroStrategy 生成文档时,通常需要一些时间,同时服务器正在工作,它会向您显示一个等待页面。如果请求来自人类(人类可以继续 StackOverflow ),则很有用,但如果调用来自 API,则没那么有用。

禁用等待页面的指令在这里:TN34124: How to Disable the Wait Page in MicroStrategy Web using the MicroStrategy Web SDK 9.x .

但我从您的问题中了解到,您无法控制第三方 MicroStrategy 应用程序。在这种情况下,你无能为力。您可以尝试要求他们实现自定义以删除等待页面或允许您使用taskproc API,但这是另一回事了。

关于javascript - 直接从microstrategy获取导出的PDF文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34332103/

相关文章:

javascript - 根据下拉选择显示或隐藏 <div>

javascript - 在 Google Maps API v3 中有效启用事件传播

java - 如何在 hbm.xml 中映射 Hibernate 中的整数数组

linux - Tomcat 重启时启动 : init. d 脚本不成功

sql-server - SQL Server 数据仓库的 Web 前端

javascript - 在微观策略报告中调用 js 文件

javascript - Ext.dispatch 来自 itemTap 监听器?

javascript - 为什么在 Javascript 中调用方法与调用 getter/setter 方法不同

java - 将列表作为参数传递给 java.lang.reflect.Method

java - 填充动态二维java数组