我正在创建一个结算表单,以便将数据发送到jsonrpc端点。虽然服务器返回状态码200;我收到此回复{message:“解析错误。服务器收到无效的JSON。”,代码:-32700,..}
$(document).on("submit", "#billing", function(event)
{
event.preventDefault();
$.ajax({
url: $(this).attr("action"),
type: $(this).attr("method"),
dataType: "JSON",
data: {new FormData(this)},
processData: false,
contentType: false,
success: function (data, status)
{
console.log('Submission was successful.');
console.log(data);
},
error: function (xhr, desc, err)
{
console.log('An error occurred.');
console.log(data);
}
});
});
<form name="billing" id="billing" action="https://XX.XX.XX.XX/ghe/api2/call/jsonrpc2" method="POST">
First Name: <input type="text" id="firstname" name="firstname"/> <br/>
Surname: <input type="text" id="surname" name="surname" />
<br/>
Email : <input type="text" id="email" name="email"/>
<br/>
<input type="submit" name="submit" value="submit">
</form>
我看到某处使用stringify并尝试通过:
$("#submit").click(function()
{
$("#billing").submit(function(e)
{
var postData = $(this).stringify();
var formURL = $(this).attr("action");
$.ajax(
{
url: $form.attr('action'),
type: "POST",
data : postData,
success:function(data, textStatus, jqXHR)
{
console.log("success");
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log("Failed");
}
});
});
$("#billing").submit(); //SUBMIT FORM
});
但我仍然得到相同的错误响应。我究竟做错了什么?使用API的新手让我知道现在有点分散;如果可以指向最适合API的资源学习网页,我将不胜感激。
由于
答案 0 :(得分:0)
您需要捕获发送到服务器的有效负载,以查看导致无效Json-Rpc异常的原因。
你可以console.log(postData)
。
或者我建议您使用浏览器调试器或fiddler。
一旦你捕获了发送到服务器的json,就可以将它放在json linter jsonLint.com中,看看是什么造成了你的麻烦。