我再次问这个问题。我有这段代码基于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看过这个问题吗?有解决方法吗?
答案 0 :(得分:0)
我通过创建服务器端脚本并在jquery中调用脚本文件来解决此问题。效果很好。
答案 1 :(得分:0)
很确定这是一个跨域限制。您无法获得XML跨域。因此,解决方案是服务器端代理解决方案,例如
<?php readfile($_GET['url']) ?>
或使用yahoo pipes将远程xml数据转换为jsonp。看看jstree文档,似乎你可以传递一个jquery ajax对象,希望它可以是一个设置为jsonp的对象。或者手动获取jsonp响应并将其作为json对象传递给jstree。