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

Jquery JSTree加载延迟加载不适用于我的资源url,但适用于示例url,jquery,json,jstree,Jquery,Json,Jstree,我正在按照我使用下面的代码找到的示例加载数据。它允许我指定一个url,并使用示例的url在我的页面上获得一个工作树。此url返回的json为: [{“id”:1,“text”:“根节点”,“子节点”:[{“id”:2,“text”:“子节点” 1,“子节点”:true},{“id”:3,“文本”:“子节点2”}]}] 我创建了自己的url,它返回完全相同的json。我的问题是,它使用我的url传递一个树节点,根据我附加的图像,该节点的名称是我的json字符串。据我所知,这两个URL都返回相同的j

我正在按照我使用下面的代码找到的示例加载数据。它允许我指定一个url,并使用示例的url在我的页面上获得一个工作树。此url返回的json为:

[{“id”:1,“text”:“根节点”,“子节点”:[{“id”:2,“text”:“子节点” 1,“子节点”:true},{“id”:3,“文本”:“子节点2”}]}]

我创建了自己的url,它返回完全相同的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,第二个图像使用我的


在服务器返回数据时,我能想到的唯一一件事是它需要有响应头。请检查这个,我认为这就是问题所在,其余的对我来说很好

content-type: application/json; charset=utf-8
您也可以尝试一次,添加contentType,我并没有完全使用这个结构,但通常这会告诉您返回类型是json,因为它不在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代码中,该代码将获取要发布回页面的数据。。我没有将json发布到页面,而是返回一个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()

我不知道这是否有帮助,但当我在浏览器中调用这两个url时,jstree url会被识别为json,浏览器会打开一个插件,允许您显示raw/json。然而,我的urll并不能做到这一点。暗示它不是json或不能识别它,但两个字符串都是相同的,都是有效的json。因此,我在load url选项中运行这两个url,并且怀疑我的url没有解析。因此,即使两个json字符串在我的浏览器结果中都是相同的,但我仍然缺少一些东西来将字符串标识为json..Hi there:)。。所以今天早上我已经试过了,但是运气不好。但就在我戴上赏金之后,我尝试了一些不同的东西,并没有返回JSON作为页面上的文本,让树吃掉,而是在我的aspx页面的响应中返回JSON。这当然奏效了。只花了几个星期的时间,试图让上面的工作作为演示。我唯一遗漏的是您添加的contentType中的字符集。。我将看看这是否有什么不同,并将报告回来。你好,再次,所以没有是没有工作与您的额外文本。不过我觉得应该这样做。我不明白为什么没有。但我现在有了。谢谢你的评论和建议:)没问题!很高兴你能成功!一般来说,jstree需要知道的是ajax正在返回json,如果内容类型在标题中,那么无论您采用何种方式都可以,我看到了您的答案,所以您选择了我建议的选项1。太好了!嗨,尽管你的建议本应该有效,但它还是不起作用。在提交额外奖金之前,我已经试过你的建议了。现在,我使用内容类型从aspx页面通过http响应发送数据,而不是通过jquery调用发送数据。