【问题标题】:Google Visualization API - error calling method on NPObjectGoogle Visualization API - NPObject 上的错误调用方法
【发布时间】:2011-05-07 21:41:57
【问题描述】:

我一直在使用可视化 API 又名动态图表,我发现http://code.google.com/apis/visualization/documentation/gallery/annotatedtimeline.html 的示例在 localhost 上并不真正有效。也就是说,当单击事件时会抛出Error calling method on NPObject(在上述示例中指向AB)。我想这是服务器端(Google 的闪存库)的安全问题。

据我所知,不需要 API 密钥、身份验证或任何类似的东西。我错过了什么?

谢谢

更新: jsFiddle 上的相同示例:http://jsfiddle.net/gT5GB/ Localhost 似乎不是问题,我猜这是非谷歌域。

由于 jsFiddle 代码托管在域上,因此文档最底部的注释不适用:

由于 Flash 安全设置, 这个(以及所有基于 Flash 的 可视化)可能不起作用 从文件访问时正确 浏览器中的位置(例如, file:///c:/webhost/myhost/myviz.html) 而不是来自 Web 服务器 URL (例如。, http://www.myhost.com/myviz.html)。

【问题讨论】:

    标签: javascript flash google-visualization


    【解决方案1】:

    我今天遇到了同样的问题,已经解决了。我没有在任何地方使用 localhost,我托管在正确的域上,并且在单击图例时我也收到了 NPObject 错误。我也只是直接使用来自http://code.google.com/apis/chart/interactive/docs/gallery/annotatedtimeline.html的示例

    原因是 Google 的示例使用了 https://www.google.com/jsapi(注意 HTTPS),而我的网站使用的是纯 HTTP。我对 Flash 不是很熟悉,但我怀疑它对安全/非安全的规则与对跨域请求的规则相似。

    将 Google 的示例更改为使用 http://www.google.com/jsapi 解决了问题

    【讨论】:

      【解决方案2】:

      是的,这是与 Flash 中的安全性相关的限制。这里有介绍:Flash - HTTP requests won't work on localhost

      所以你最好的办法是把它托管在某个地方(它可以是同一台机器上的服务器)。

      【讨论】:

      • 我确实有 3rd 方远程服务器和 localhost 服务器,但没有一个能通过闪存安全要求。我发布的 jsFiddle 示例也没有。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多