我正在使用d3.json来获取动态数据.
d3.json("/myweb/totalQtyService.do", function(json) {
drawChart(json);
});
Run Code Online (Sandbox Code Playgroud)
如何在d3.json上发布参数?即
数据:{年:"2012",客户:"type1"}
有什么想法在帖子上传递那些参数?不是url参数/myweb/totalQtyService.do?year=2012&customer=type1
我在下面尝试过,但无法使其正常工作.因为数据结构如此不同
d3.json => [对象,对象,对象,对象]
$ .ajax => {entity_name:"ACTIVA"entity_tar_val:350entity_val:400level:1_ proto _:Object},...
$.ajax({
type: "POST",
url: url,
// parameter here
data : {year: "2012", customer: "type1“},
success: function(json){
// console.log(json);
**drawChart(json);**
} ,
error:function (request, err, ex) {
}
});
Run Code Online (Sandbox Code Playgroud)
Tom*_*m P 24
注意:此答案适用于较旧版本的d3.json,请参阅下面的JoshuaTaylor的评论.
d3v5的注意事项:原始答案越来越过时了.d3 v5使用fetch API和promises而不是XMLHttpRequest.
您可以在任何d3-fetch数据获取函数的第二个参数中设置http请求的方法,例如
d3.csv("/path/to/file.csv", { method: 'POST' })
.then((data)=>{ /* do something with 'data' */ });
Run Code Online (Sandbox Code Playgroud)
d3.json是一个包装d3.xhr的便捷方法; 它是硬连线发出GET请求的.
如果你想POST,你可以直接使用d3.xhr.
像这样的东西:
d3.xhr(url)
.header("Content-Type", "application/json")
.post(
JSON.stringify({year: "2012", customer: "type1"}),
function(err, rawData){
var data = JSON.parse(rawData);
console.log("got response", data);
}
);
Run Code Online (Sandbox Code Playgroud)
由于在创建请求对象时未指定回调,因此不会立即发送回调.一旦收到JSON响应,就可以用标准的JavaScript方式解析,即JSON.parse(data)
d3.xhr的文档就在这里.
你也可以试试这个:
d3.json(url,function(error, data) {
...
})
.header("Content-Type","application/json")
.send("POST", JSON.stringify({year: "2012", customer: "type1"}));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23466 次 |
最近记录: |