Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
d3.js d3.xhr(rpcUrl).post似乎无法传递json数据对象_D3.js_Json Rpc_Queue.js - Fatal编程技术网

d3.js d3.xhr(rpcUrl).post似乎无法传递json数据对象

d3.js d3.xhr(rpcUrl).post似乎无法传递json数据对象,d3.js,json-rpc,queue.js,D3.js,Json Rpc,Queue.js,背景:我正试图使用d3创建一个choropleth,如下所示: 我的数据来自json rpc api var rpcUrl = "http://localhost:3001/rpc/json"; var rpcData = '{"params": {}, "jsonrpc": "2.0", "method": "foo.method", "id": "bar"}'; console.log(d3.xhr(rpcUrl).post(rpcData, function(error, data)

背景:我正试图使用d3创建一个choropleth,如下所示:

我的数据来自json rpc api

var rpcUrl = "http://localhost:3001/rpc/json";

var rpcData = '{"params": {}, "jsonrpc": "2.0", "method": "foo.method", "id": "bar"}';

console.log(d3.xhr(rpcUrl).post(rpcData, function(error, data){
    console.log(error);
    console.log(data);
}));
我得到了答复。下一步:

responseText: "{"jsonrpc":"2.0","error":{"code":"bad_request","message":"JSON RPC requires a 'method' field"}}"
我的方法显然在rpcData中,所以看起来我根本没有提供对象。我怀疑我的问题是误解了d3.xhr的名称。有什么线索吗


注意:如果您正在查看背景信息,您会注意到d3.xhr(url).post()是使用queue.js调用的。我提供了上面的简化调用,以避免对问题来源的任何混淆。

我遇到了与d3.xhr.post相同的问题,似乎没有发送任何post数据。将
content-type
标题信息设置为
application/json
为我解决了这个问题。以下是您的更新示例:

var rpcUrl = "http://localhost:3001/rpc/json";
var rpcData = '{"params": {}, "jsonrpc": "2.0", "method": "foo.method", "id": "bar"}';
console.log(d3.xhr(rpcUrl)
  .header("Content-Type", "application/json")
  .post(rpcData, function(error, data) {
     console.log(error);
     console.log(data);
   })
);

您是否验证了您的post数据是否正确?如果您可以使用URL中的参数发出GET请求,这将更加容易,因为您可以直接使用
d3.json
。是的,POST数据是正确的。我已经使用用于chrome的postman浏览器工具和一个简单的python脚本对其进行了测试。我连接到的json rpc端点需要POST。我想我从来没有遇到过使用GET的json rpc实现,但是,嘿,我只是一个鸡蛋。您是否尝试过将
rpcData
作为对象而不是字符串发送(即,周围没有引号)?是的。我先试过了。api文档没有提到神奇的json转换,但我希望如此。:-)