我正在使用一个插件,我发现根据传递给它的数据生成一个组织结构图。该插件名为OrgChart。我试图粘贴我的数据的硬编码JSON对象以及通过POST
AJAX调用来获取它。这两个实例都会导致浏览器错误为414 URI too Long
。
当我检查console > network
标签时,它似乎正在尝试将JSON数据加载为GET
请求?
以下是我正在使用的演示的链接。我们设置的唯一区别是图表中使用的数据量。
http://dabeng.github.io/OrgChart/ajax-datasource/
插件是否通常使用GET
来提取JSON
数据?我只是试图看看是否有任何方法可以调整此插件以使其工作,因为对于这样的插件应该期望大数据集。
修改
这就是我运行插件的方式。我有一个AJAX调用,从数据库中获取数据,然后将其传递给插件。它在第一个POST
调用中获取数据,这是我的AJAX语句,但是看起来插件正试图通过URL接收该数据。
// On Ready
$(document).ready(function(){
$.ajax({
url: "api/fetchOrgChart",
type: 'POST',
cache: false,
data: {
QID: 'Q1234'
},
error: function(err) {
alert(err.statusText);
},
success: function(data) {
org = makeTree(data, 'root');
// Render the org chart
$('#chart-container').orgchart({
'data' : JSON.stringify(org),
'depth': 50,
'nodeContent': 'title'
});
}
});
});
// Creates our nested hierarchal array based on the manager id and employee id
function makeTree(data, parentId) {
return data.reduce(function(r, e) {
if (e.MgrQID == parentId) {
var children = makeTree(data, e.QID);
if (children.length) e.children = children
r.push(e)
}
return r;
}, [])
}