我在使用 api 时遇到问题,我尝试了很多方法,但似乎没有任何效果。我用了他们的 https://api.random.org/json-rpc/1/request-builder JSON 对象创建者以确保我正确地处理了 JSON。我查看了我的 JSON 请求,我认为问题出在这里。
这是我的代码:
$.ajax({
url: 'https://api.random.org/json-rpc/1/invoke',
type:"POST",
data:{
'jsonrpc': '2.0',
'method': 'generateIntegers',
'params': {
'apiKey': '00000000-0000-0000-0000-000000000000',
'n': 10,
'min': 1,
'max': 10,
'replacement': true,
'base': 10
},
'id': 2601
},
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(result){
$('#text').html(JSON.stringify(result));
console.log(result);
}
});
例如, key 为 0。
我得到的响应是这样的:
{"jsonrpc":"2.0","error":{"code":-32700,"message":"Parse error","data":null},"id":null}
网站错误代码表说消息是由于解析错误,我抓取的数据肯定是正确的,所以就把它归结为..我发送错了吗?我必须发送此数据 .. 而不是它想要我发送的方式,我相信这与我的 JSON 请求 header 有关。
我知道我可以只使用 Maths.random(),或者可能会撕掉他们的整个演示页面,但他们使用了一堆 HTML 表单,这应该只是简单的 Ajax。对吧?
最佳答案
如果你想发送为json,你需要自己将数据字符串化
$.ajax默认是形成编码对象
尝试
var data: {
'jsonrpc': '2.0',
'method': 'generateIntegers',
'params': {
'apiKey': '00000000-0000-0000-0000-000000000000',
'n': 10,
'min': 1,
'max': 10,
'replacement': true,
'base': 10
},
'id': 2601
};
$.ajax({
url: 'https://api.random.org/json-rpc/1/invoke',
type: "POST",
data: JSON.stringify(data),// stringify data object
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
$('#text').html(JSON.stringify(result));
console.log(result);
}
});
关于javascript - JQuery $.ajax 请求 random.org api 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39949825/