D3 Json请求获取XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用Origin null

时间:2012-07-23 23:30:24

标签: javascript html xml http d3.js

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

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

XMLHttpRequest无法加载“http:// localhost:8080 / cluster”。 Access-Control-Allow-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 get,但它返回XMLHTTPrequest错误......

1 个答案:

答案 0 :(得分:0)

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