JSTree 加载延迟加载不适用于我的资源 url 但适用于示例 url

JSTree loading lazy loading not working for my resource url but is for sample url

我正在按照使用以下代码找到的示例加载数据。它允许我指定一个 url 并使用示例的 url https://www.jstree.com/fiddle/?lazy 我在我的页面上得到一个工作树。这 url returns 一个 json 的:

[{"id":1,"text":"Root node","children":[{"id":2,"text":"Child node 1","children":true},{"id":3,"text":"Child node 2"}]}]

我创建了自己的 url,returns 与 json 完全相同。我的问题是,使用我的 url 它提供了一个树节点,根据我的附加图像,我的 json 字符串作为节点的名称。据我所知,两个 url 都返回相同的 json 字符串并且只是原始文本,但我不明白为什么它会错误地解释我的。谁能帮我理解我做错了什么?

    $(function() {
      $('#jstree').jstree({
        'core' : {
          'data' : {
            "url" : "/_content/data/table/companytree.aspx/?lazy",
            "data" : function (node) {
              return { "id" : node.id };
            }
          }
        }
      });
    });

抱歉我添加了错误的代码片段

第一张图片使用的是示例url,第二张图片使用的是我的..

我唯一能想到的是,当服务器 return 处理它需要的数据时,它需要有响应 header。请检查一下,我认为这就是问题所在,休息对我来说很好。

content-type: application/json; charset=utf-8

你也可以尝试一次,添加contentType,我没有准确使用过这个结构,但通常这会告诉return类型是json incase that's not in header ].

$(function() {
      $('#jstree').jstree({
        'core' : {
          'data' : {
            "url" : "/_content/data/table/companytree.aspx/?lazy",
            "contentType": "application/json; charset=utf-8",
            "data" : function (node) {
              return { "id" : node.id };
            }
          }
        }
      });
    });

我将此代码添加到我的 aspx 代码中,该代码将数据提取到 post 返回到页面.. 而不是 post 将 json 到页面我 return 一个 http 响应.. 它对我有用,但很想知道为什么演示方法没有。内容类型似乎是我不知道的罪魁祸首。

        Response.ContentType = "application/json"
        Response.ContentEncoding = Encoding.UTF8

        Dim bom As Byte() = Encoding.UTF8.GetPreamble()
        Response.BinaryWrite(bom)
        Response.BinaryWrite(Encoding.UTF8.GetBytes(PageDataRecords))
        Response.Flush()
        Response.End()