【问题标题】:Dojo: DataGrid from a JsonRest StoreDojo:来自 JsonRest 存储的 DataGrid
【发布时间】:2012-04-12 14:09:00
【问题描述】:

我正在尝试按照这里的教程进行操作:

http://dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/

教程写道:

require(["dojo/store/JsonRest"], function(JsonRest){
myStore = new JsonRest({target:"MyData/"});

我的 MyData.json 文件放在 ROOT\MyData 中。如果我运行以下代码

...
<script>
var myStore, dataStore, grid;
require(["dojo/store/JsonRest"], function(JsonRest){
    myStore = new JsonRest({target:"MyData/"});
});

require(["dojox/grid/DataGrid",
         "dojo/data/ObjectStore",
         "dojo/domReady!"
], function(DataGrid, ObjectStore){
        grid = new DataGrid({
        store: dataStore = ObjectStore({objectStore: myStore}),
        structure: [
            {name:"State Name", field:"name", width: "200px"},
            {name:"Abbreviation", field:"abbreviation", width: "200px"}
        ]
        }, "target-node-id"); // make sure you have a target HTML element with this id
        grid.startup();
});
</script>
...

如果我写“MyData/”,我会在数据上收到 404 错误,如果我写“MyData/MyData.json”,则会收到 416(请求的范围不满足)。

我知道这完全是愚蠢的,因为我找不到任何人有同样的问题,但我看不到解决方案:/

最好的问候,感谢您的帮助!

安德烈亚斯

【问题讨论】:

  • url应该指定json文件MyData/MyData.json。可以通过浏览器直接访问url来检索json文件吗?
  • 该演示中 jsonData 的 url 是 dojotoolkit.org/documentation/tutorials/1.7/store_driven_grid/…,但里面有一个图像,也没有完整的 url。
  • 感谢您的回复! Craig:如果我这样指定 url,我会收到 416 错误。例如,如果我单击 Chrome 调试器中请求的链接,我会得到正确的 JSON。 OammierR:如果我删除图像,它是相同的错误(如果我写了整个路径,则为 416,如果我按照教程操作,则为 404)。如果我写完整路径,它是相同的(例如 localhost:8080/Data/...)

标签: dojo


【解决方案1】:

好的,所以您提供的数据不足以确定问题所在,但未找到 404。

所以:

  1. 确保您可以通过浏览器访问json文件没有问题。
  2. 如果这样做,请在 {target:"http://URL"} 中使用此 url,这应该可以。
  3. 请记住,在dojo.store.JsonRest 目标选项{target:"relative or absolute"}中,如果使用相对路径,它会在执行脚本的路径中查找。李>

例如如果您的网格脚本位于 http://localhost/grid/ 中,那么 JsonRest 将相对于该路径。对于目标 {target:"MyData.json"},它将在 http://localhost/grid/MyData.json 中查找,如果它在哪里,则找不到它http://localhost/MyData.json

如果你还是不能再解决这个帖子!!

【讨论】:

  • 感谢您的回复!如果我喜欢这个myStore = new JsonRest({target:"http://localhost:8080/Workspace/MyData/Data.json"});,我会得到一个 416,(请求的范围不满足)。我可以使用该 URL 在浏览器中查看 JSON,因此 Dojo 和数据之间存在“连接”。数据是有效的 JSON,所以我不知道我做错了什么。
  • 我使用了您粘贴的代码,一切正常,因此证明您的问题与数据有关,可证明与数据结构有关。 JsonRest 的数据结构:[{name: 'Florida', abbreviation: 'FL' }, {name: 'California', abbreviation: 'CL' }]
猜你喜欢
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 1970-01-01
  • 2011-12-29
  • 2013-11-01
  • 1970-01-01
  • 2012-02-09
相关资源
最近更新 更多