gpt4 book ai didi

javascript - jstree 3.0.0 卡在加载 json 数据上

转载 作者:行者123 更新时间:2023-12-01 05:51:13 28 4
gpt4 key购买 nike

我正在使用 jstree 创建树形导航。

如果我使用 HTML 中定义的静态数据或分配给 jstree.core.data ,它就会起作用。 ,但是当我指定 jstree.core.data.url 时它不是。只是显示永远加载。

如果我指定静态 json 文件或 ajax url 作为源,这并不重要。

<html>
<head>
<link rel="stylesheet" href="jquery.treeview.css" />
<link rel="stylesheet" href="style.min.css" />
</head>
<body>
<div id="stuck"></div>
<br/>
<div id="stuck2"></div>
<br/>
<div id="works"></div>
<script type="text/javascript" src="jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="jstree.min.js"></script>

<script type="text/javascript">
$('#stuck').jstree({
"core" : {
'data': {
'url' : 'catalog.json'
}
},
});
$('#stuck2').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'ajax_roots.json' :
'ajax_children.json';
},
'data' : function (node) {
return { 'id' : node.id };
}
}
}
});
$('#works').jstree({ 'core' : {
'data' : [
{ "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
{ "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
{ "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
{ "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
]
} });
</script>
</body>
</html>

我有:

  • 使用 jsonlint 测试 JSON 。
  • 对工作和不工作的情况使用相同的 JSON
  • 将响应 header 更改为 application/jsontext/json都在 php和/或nginx
  • 多种浏览器
  • 尝试过 1.9.0。和 1.11.0 版本的 jQuery。
  • 查看了 SO 上的类似问题,但这些问题都是关于较旧的 jstree。
  • 尝试从 jstree 运行 docs/index.html。同样的问题。

我该如何调试这个?我在控制台中没有收到任何错误或警告。

最佳答案

我似乎犯了很多错误:

  1. 显然我没有检查所有 JSON 文件,有些文件的键名不带引号,或者使用单引号而不是双引号。

  2. 当内联传递 JSON 数据时,如第三个示例中指定的那样。它也可以在没有引号中的键名称的情况下工作,因此无效的 JSON 可以内联工作,但通过 XHR 获取它时则不行。令人困惑。

  3. 由于 mvw 提到的安全措施,docs/index.html 中的示例不起作用。错误信息是:

    请求的资源上不存在“Access-Control-Allow-Origin” header 。因此,不允许访问源“null”。

关于javascript - jstree 3.0.0 卡在加载 json 数据上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22036415/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com