4

我又在问这个问题。我有这段代码可以加载基于 XML 文件的 jsTree:

$("#div").jstree({
    "xml_data" : {
        "ajax" : {
            "url": "http://192.168.101.1/xml/jstree.xml"
        },
        "xsl" : "nest"
    },
    "plugins" : ["themes", "xml_data", "ui","types"]

当文件与我的脚本在同一台服务器上时,它可以工作。我的树加载。

"url": "jstree.xml"  

但是当我这样做时:

"url": "http://192.168.101.1/xml/jstree.xml" 

我一直在页面上无限加载。它是同一个 XML 文件,当我输入浏览器时,我绝对可以手动访问该 XML。

有人见过 jsTree 的这个问题吗?有解决方法吗?

4

2 回答 2

0

很确定这是一个跨域限制。您无法获得 XML 跨域。因此,解决方法是例如服务器端代理解决方案

<?php readfile($_GET['url']) ?>

更多细节在这里

或者使用yahoo 管道将远程 xml 数据转换为 jsonp。查看 jstree 文档,您似乎可以传递一个 jquery ajax 对象,希望该对象可以是设置为执行 jsonp 的对象。或者手动获取一个 jsonp 响应,并将其作为 json 对象传递给 jstree。

于 2012-08-25T21:50:19.110 回答
0

我通过创建服务器端脚本并在我的 jquery 中调用脚本文件来解决此问题。它运作良好。

于 2012-08-22T19:13:22.933 回答