1. 程式人生 > >JSTree通過ajax載入資料時樹形結構不顯示的解決辦法

JSTree通過ajax載入資料時樹形結構不顯示的解決辦法

版本:jstree 3.3.5
頁面引入資源:

<link rel="stylesheet" href="/plugins/jstree/themes/default/style.min.css" />
<script src="/plugins/jstree/jstree.min.js"></script>
出現的現象是:靜態資料載入能夠正常顯示,Ajax載入資料時不顯示,只能夠看到一閃而過的Loading。
程式碼如下:
$('#unittree').jstree({
    'core' : {
        //寫法一(正常顯示):'data' : [{"id":"-1","text":"部門結構","children":[{"id":"1","text":"技術部","state":"closed"},{"id":"11","text":"測試部門"},{"id":"22","text":"測試部門"},{"id":"23","text":"測試部門"},{"id":"56","text":"測試部門"}]}]
        //寫法二(正常顯示):'data': {
             'url': '/sys/unit/treejson.xhtml?root=true&deptid=${deptid}',
             "datatype": "json"
         }
    },
    "plugins": ["themes", "json_data", "ui"]
});
經跟蹤,ajax獲取到的資料內容與靜態資料內容是一模一樣的。
解決辦法:服務端返回資料時設定content-type為application/x-json,必須設定content-type而且只能設定為這個值,如果不設定或者設定成text/html都不行。