【问题标题】:Problem accessing remote CSV using dojo使用 dojo 访问远程 CSV 时出现问题
【发布时间】:2010-10-03 09:16:18
【问题描述】:

我正在尝试创建一个网站,在其中将我的数据托管在 google 电子表格中,并使用 dojo 在用户的浏览器中向用户显示数据。

但是,我得到了错误

Access to restricted URI denied" code: "1012

当浏览器遇到:

var stateStore = new dojox.data.CsvStore(
{url: "http://spreadsheets.google.com/pub?key=p0jvMlPF5YqcUllrbwZzQBg&output=csv&gid=0", 
label: "name"});

用本地存储的相同 CSV 副本替换它时效果很好。

从我的谷歌搜索告诉我,这是由于现代浏览器的安全限制试图保护您免受跨站点脚本攻击。当然,为了我的页面,我想要某种方式能够将该域“列入白名单”。

有什么建议吗?

完整的 HTML 代码是

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
        @import "dojo-release-1.2.3/dijit/themes/tundra/tundra.css";
        @import "dojo-release-1.2.3/dojo/resources/dojo.css"
    </style>
    <script type="text/javascript" src="dojo-release-1.2.3/dojo/dojo.js"
         djConfig="parseOnLoad:true, isDebug: true"></script>
    <script>
        dojo.require("dojox.data.CsvStore");
        dojo.require("dijit.Tree");
        dojo.require("dojo.parser");
    </script>
    <script type="text/javascript">
        var stateStore = new dojox.data.CsvStore({url: "http://spreadsheets.google.com/pub?key=p0jvMlPF5YqcUllrbwZzQBg&output=csv&gid=0", label: "name"});
//      var stateStore = new dojox.data.CsvStore({url: "states.csv", label: "name"});
    </script>


</head>
<body class="tundra">
<!--    <div dojoType="dojox.data.CsvStore" url="http://spreadsheets.google.com/pub?key=p0jvMlPF5YqcUllrbwZzQBg&output=csv&gid=0" jsid="stateStore" /> -->
    <div dojoType="dijit.Tree" store="stateStore" labelAttr="name" label="States"></div>
</body>
</html>

提前致谢, 动漫

【问题讨论】:

    标签: javascript dojo xss


    【解决方案1】:

    Same origin policy.

    用于访问页面的域必须与请求的域匹配。因此,您无法仅使用 JavaScript 从其他地方访问电子表格.google.com。

    我听到最多的解决方法是cross-domain proxy -- 一个服务器端脚本,它可以 GET(或 POST)到另一个域并将结果回显到 JavaScript。

    【讨论】:

      猜你喜欢
      • 2015-02-21
      • 2018-08-02
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 2020-01-31
      相关资源
      最近更新 更多