无法在jsTree中通过HTTP加载XML文件

时间:2012-08-15 16:24:38

标签: javascript jquery jstree

我再次问这个问题。我有这段代码基于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看过这个问题吗?有解决方法吗?

2 个答案:

答案 0 :(得分:0)

我通过创建服务器端脚本并在jquery中调用脚本文件来解决此问题。效果很好。

答案 1 :(得分:0)

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

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

more details here

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