Php 从URL加载jqtree和JSON

Php 从URL加载jqtree和JSON,php,jquery,json,jqtree,Php,Jquery,Json,Jqtree,我想在jqTree中用PHP从服务器加载JSON数据。 我曾经尝试过这样使用“数据url”: $(function() { $('#tree1').tree({ //data: data, dataUrl: 'menu_content.ajax.php', autoOpen: true, ... 由menu_content.ajax.php生成的JSON是: [ { label: 'node1', children: [

我想在jqTree中用PHP从服务器加载JSON数据。 我曾经尝试过这样使用“数据url”:

$(function() {
$('#tree1').tree({
    //data: data,
    dataUrl: 'menu_content.ajax.php',
    autoOpen: true,
...
由menu_content.ajax.php生成的JSON是:

[
    {
        label: 'node1',
        children: [
            {
                label: 'child1'
            },
            {
                label: 'child2'
            }
        ]
    },
    {
        label: 'node2',
        children: [
            {
                label: 'child3'
            }
        ]
    }
]
当我将这个JSON直接放在javascript代码中时,它是可以工作的,但与PHP/JSON方式不兼容。 jqtree下载文件中的示例使用了一个更复杂的mockjax,如手册所述

重新加载功能也不起作用:

$('#tree1').tree('loadDataFromUrl', 'menu_content.ajax.php');
我尝试在PHP中使用两种不同的头文件:

header('Content-Type: text/html; charset=utf-8');
or
header('Content-Type: application/json');
但不管有没有,它都不起作用

它肯定是我做错了什么,但我不知道是什么

我们可以在javascript代码中直接看到JSON应用程序: 在这里使用php JSON:

Firebug说一切正常:在控制台中,没有错误,GET查询给出了OK


非常感谢您的回答。

原因是JSON无效

此外,需要注意的是,版本:

var data = [ { label: 'node1', children: [ { label: 'child1' }, { label: 'child2' } ] }, { label: 'node2', children: [ { label: 'child3' } ] } ];
当它直接在javascript代码中使用时可以工作,标签周围也没有引号,但当它作为loadURL参数出现在PHP中时不工作。为此,我们需要一个格式良好的JSON,如:

[
{
"label": "node1",
"children": [
{
"label": "child1"
},
{
"label": "child2"
}
]
},
{
"label": "node2",
"children": [
{
"label": "child3"
}
]
}
]

您必须在phpThanks中将content type设置为
json
,这对您的答案有很大帮助。在我的问题帖子中,我尝试了这两种方法,但都不起作用。