2012-08-15 58 views
4

我再次問這個問題。我有這樣一段代碼加載基於XML文件jsTree:無法通過jsTree中的HTTP加載XML文件

$("#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的這個問題嗎?有沒有解決方法?

+1

重複的帖子是不鼓勵的:http://stackoverflow.com/questions/11957646/building-jstree-menu-based-on-xml請在上一篇文章中提供一個小提琴。 – MMeah 2012-08-15 22:09:16

+0

@MMeah,我不能在工作中使用jsfiddle。我的問題很簡單。是否有可能在jstree插件中執行url:「http // data.xml」文件。我沒有看到它的任何參考。我試圖做到這一點,而不是工作。 – user1471980 2012-08-20 12:55:14

+0

你得到的錯誤是什麼? Javascript錯誤?不在服務器上時,你的xml在哪裏?它可能是一個跨域問題? – mahatmanich 2012-08-22 12:59:31

回答

0

我通過創建服務器端腳本並在我的jQuery中調用腳本文件來解決該問題。它運作良好。

+0

對你有好處:-) – mahatmanich 2012-08-23 07:53:09

0

很確定這是一個跨域限制。您無法獲得XML跨域。因此,解決或者是例如

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

more details here

或者使用yahoo pipes到遠程XML數據轉換爲JSONP一個服務器端的代理解決方案。看着jstree文檔,看來你可以傳遞一個jquery ajax對象,希望可以成爲jsonp的設置對象。或者手動獲取jsonp響應並將其作爲json對象傳遞給jstree。