将表单数据发布到 jsponrpc 端点时出现错误 -32700
Posted
技术标签:
【中文标题】将表单数据发布到 jsponrpc 端点时出现错误 -32700【英文标题】:Error -32700 on posting form data to jsponrpc endpoint 【发布时间】:2017-10-04 15:48:45 【问题描述】:我正在创建一个计费表单以将数据发送到 jsonrpc 端点。虽然服务器返回状态码 200;我收到此响应消息:“解析错误。服务器收到无效的 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 的资源学习 url,将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:您需要捕获正在发送到服务器的有效负载,以查看导致无效 Json-Rpc 异常的原因。
你可以console.log(postData)
。
或者我建议您使用浏览器调试器或fiddler。
捕获发送到服务器的 json 后,您可以将其放入 json linter jsonLint.com 中,看看是什么导致了您的麻烦。
【讨论】:
以上是关于将表单数据发布到 jsponrpc 端点时出现错误 -32700的主要内容,如果未能解决你的问题,请参考以下文章
将表单提交到 servlet 时出现 404 错误 [重复]
将 DAX 与 DynamoDB 一起使用时出现无法配置集群端点错误