这与问题非常相似,EG:Request to Random.org API with ZendFramework2 但是,我认为我的问题出在我的数据请求中。
GM_xmlhttpRequest({
method: "POST",
url: "https://api.random.org/json-rpc/1/invoke",
data: {
"jsonrpc": "2.0",
"method": "generateDecimalFractions",
"params": "{\"apiKey\": \"d2319b89-8389-4d24-b1eb-4dbd80009153\",\"n\": 10,\"decimalPlaces\": 8,\"replacement\": true}",
"id": 15324815
},
headers:{
"Content-Type": "application/json-rpc"
},
onload: function(response) {
console.log(response);
}
});
我得到的错误是:
finalUrl:“https://api.random.org/json-rpc/1/invoke”
readyState:4
响应:“{”jsonrpc“:”2.0“,”错误“:{”code“: - 32700,”message“:”解析错误“,”数据“:null},”id“:null}”
responseHeaders:“日期:2015年4月1日星期三02:34:08 GMT?服务器:Apache / 2.2.22(Debian)?X-Powered-By:PHP / 5.4.39-0 + deb7u2?内容类型:application / json; charset = utf-8?Access-Control-Allow-Origin:
*?连接:Keep-Alive?Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept?Content-Length:87?Keep-Alive:timeout = 15,max = 200?“<登记/> responseText:“{”jsonrpc“:”2.0“,”error“:{”code“: - 32700,”message“:”Parse error“,”data“:null},”id“:null}”
responseXML:null
状态:200
statusText:“确定”
所以我很确定问题出在我的JSON请求中。我希望有更多JSON-RPC经验的人可以帮助我指明正确的方向。
答案 0 :(得分:0)
您需要在发送数据之前对数据进行正确的JSON编码:
var encodedData = JSON.stringify ( {
"jsonrpc": "2.0",
"method": "generateDecimalFractions",
"params": {apiKey: "d2319b89-8389-4d24-b1eb-4dbd80009153", n: 10, decimalPlaces: 8, replacement: true},
"id": 15324815
} );
GM_xmlhttpRequest ( {
method: "POST",
url: "https://api.random.org/json-rpc/1/invoke",
data: encodedData,
headers: {
"Content-Type": "application/json"
},
onload: function (response) {
console.log (response);
}
} );