【问题标题】:Making Google Visualization API to return the rendered visualization from https://charts.googleapis.com/* instead of http://charts.apis.google.com/*使 Google Visualization API 从 https://charts.googleapis.com/* 而不是 http://charts.apis.google.com/* 返回呈现的可视化
【发布时间】:2011-06-13 07:24:03
【问题描述】:

我要解决的问题是在安全网站上提供由 Google 可视化 API 准备的折线图。我已经阅读了一些论坛和博客文章,但还没有提出可行的解决方案。

One solution mentioned here是通过服务端代码获取图片,保存到本地然后提供服务。但对我来说问题是如何动态生成图像 URL?我目前使用可视化 API 将我的数据提供给“google.visualization.ImageSparkLine”构造函数,其余的由它完成。

无论如何,在查看此方法生成的响应后,我发现返回的图像带有 url 模式 http://chart.apis.google.com/chart,这是通过 SSL 服务的网站上出现问题的主要原因。这些会导致警告出现在 FF、IE、Chrome 中。

现在我想如果我只是将“http://chart.apis.google.com”替换为“https://chart.googleapis.com”一切正常。

因此,对于 1. 在浏览器获取图像 URL 之前转换图像 URL 或 2. 开始获得安全响应的任何帮助;会很棒。

【问题讨论】:

    标签: javascript ssl google-visualization


    【解决方案1】:

    我终于通过构建图表图像 URL 解决了这个问题。

    现在,在调用 google 可视化 API 以生成可视化之前,JavaScript 代码会检查 location.protocol 是否具有“https”。如果它确实比它有https,

    1. 它使用“扩展编码”标准对原始值字符串进行编码。 (见http://code.google.com/apis/chart/docs/data_formats.html
    2. 然后它合并不同的参数来构造一个https://chart.googleapis.com/* URL(见http://code.google.com/apis/chart/docs/making_charts.html#multichart & http://code.google.com/apis/chart/docs/chart_params.html#gcharts_cht
    3. 使用该 URL 动态生成图像,然后附加到父容器。

    在 FF3.6、Chrome、IE8(无兼容模式)上测试,不会生成安全警告消息或弹出窗口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-29
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 2011-04-07
      相关资源
      最近更新 更多