【问题标题】:Unable to load an XML file via HTTP in jsTree无法在 jsTree 中通过 HTTP 加载 XML 文件
【发布时间】:2012-08-26 05:50:19
【问题描述】:

我又问这个问题了。我有这段代码可以加载基于 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 的这个问题吗?有解决办法吗?

【问题讨论】:

  • 不鼓励重复发帖:stackoverflow.com/questions/11957646/… 请在上一篇文章中提供小提琴。
  • @MMeah,我不能在工作中使用 jsfiddle。我的问题很简单。是否可以在 jstree 插件中执行 url: "http//data.xml" 文件。我没有看到任何提及它。我试过了,但没有工作。
  • 您遇到的错误是什么? Javascript错误?不在服务器上时,您的 xml 在哪里?会不会是跨域问题?
  • @mahatmanich 看起来像一个跨域问题,我不知道如何解决。

标签: javascript jquery jstree


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    more details here

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2020-04-03
      相关资源
      最近更新 更多