Javascript 将jQuery AJAX请求传递给D3

Javascript 将jQuery AJAX请求传递给D3,javascript,jquery,ajax,json,d3.js,Javascript,Jquery,Ajax,Json,D3.js,我正试图从基于链接的URL获取JSON,并发送JSON对象供我的D3图形使用。URL直接指向JSON。但是,我得到一个错误root.links.forEach未定义。当我在本地发送JSON而不是通过AJAX请求发送JSON时,代码可以工作。不确定我收到的错误是为什么root.links.forEach未定义 代码: 如果我去掉AJAX调用并用这个替换它,那么它就可以工作了 d3.json("/path/to/json.json", function(error, json) { // e

我正试图从基于链接的URL获取JSON,并发送JSON对象供我的D3图形使用。URL直接指向JSON。但是,我得到一个错误root.links.forEach未定义。当我在本地发送JSON而不是通过AJAX请求发送JSON时,代码可以工作。不确定我收到的错误是为什么root.links.forEach未定义

代码:

如果我去掉AJAX调用并用这个替换它,那么它就可以工作了

d3.json("/path/to/json.json", function(error, json) {
    // expands scope of json
    root = json
    update();
});

使用jsonp作为数据类型。请检查这里的差异以及为什么使用它来代替json:如果我无法在我点击的URL处修改json数据,该怎么办?在我的请求中将数据类型从json更改为jsonp会有效果吗?如果没有jsonp或CORS,就不能进行跨域AJAX,因为jsonp需要服务器支持。如果是这样,JSONP客户端的唯一更改就是向URL添加回调参数。在服务器上,您需要获取“callback”参数,并将该字符串包装到函数定义中,而不是返回原始JSON。
d3.json("/path/to/json.json", function(error, json) {
    // expands scope of json
    root = json
    update();
});