下载之前捕获Highcharts客户端导出响应

时间:2018-08-21 09:15:07

标签: javascript highcharts

我已将我的应用程序配置为使用Highcharts客户端导出(https://www.highcharts.com/docs/export-module/client-side-export),在页面加载时,我创建了一个图表并调用exportChart方法,如本示例中所示(http://jsfiddle.net/5dry1oqg/1/

我的问题是我不想立即下载图像,而是想在以后可以使用的打印版本中使用它。我需要知道的是,是否存在一种拦截下载的方法,例如在创建Blob时(如果发生这种情况)。

我怀疑没有,因为我没有从Highcharts找到任何与此相关的文档,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

当您触发exportChart时,POST请求将被发送到highcharts服务器,其中包含SVG和请求正文中的一些其他值。我已经检查了被称为(export.highcharts.com)的URL,它是一种用于导出图表的游乐场。如果单击下载,您可以轻松地看到,首先发出了带有一些数据(JSON)的POST请求作为请求有效负载(在“网络”选项卡中检查调用)。作为响应,您将获得生成的图像字符串(例如charts/chart.20bb843a8be6440e99ffcab5996c532d.png),因此可以通过基本URL(https://export.highcharts.com/)+ POST调用的响应来访问导出的图像。

示例: https://export.highcharts.com/charts/chart.20bb843a8be6440e99ffcab5996c532d.png

我不确定100%这种解决方法的合法性,但是您至少可以尝试一下,也许可以找到一个更好/更合适的解决方案。