2

我正在使用 d3.json() 请求一个 json 对象并解析/可视化它......

它是从 java servlet doGet 函数请求的……我知道我的 java 服务器已成功将 json 发送到浏览器。但是,我在尝试解析 json 时遇到了问题。d3.json 应该做一个 http get 请求,但由于某种原因,它返回一个 XML 请求错误:

XMLHttpRequest 无法加载“http://localhost:8080/cluster”。Access-Control-Allow-Origin 不允许 Origin null。

d3.json 是否有一些我应该知道的进一步设置,或者它应该开箱即用?这是我的代码..

    d3.json("http://localhost:8080/cluster", function(json) {       

            //do visualization
            var node = vis.data([json]).selectAll("g.node")
             .data(pack.nodes)
             .enter().append("g")
             .attr("class", function(d) {return d.children ? "node" : "leaf node" ;})
             .attr("transform", function(d) {return "translate(" + d.x + "," + d.y +")"; });

            node.append("title")
                .text(function(d) { return d.name + (d.children ? "" : ": " + format(d.size)); });



            node.append("circle")
            .attr("r", function(d) { return d.r; });

            node.filter(function(d) { return !d.children; }).append("text")
            .attr("text-anchor", "middle")
            .attr("dy", ".3em")
            .text(function(d) { return d.name.substring(0, d.r / 3); });
    }

我在这里做错了吗?我主要感到困惑,因为 d3.json 应该默认执行 HTTP 获取,但它返回 XMLHTTPrequest 错误...

4

1 回答 1

0

如果您使用文件协议 (file:///) 加载 HTML 文件,那么您将遇到此问题。尝试也使用 localhost 加载 html 文件,这应该可以解决问题。

于 2017-07-05T04:33:50.513 回答