将表单数据发布到 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 一起使用时出现无法配置集群端点错误

在 React 应用程序中使用 axios.post 到 Django 端点时出现 403 错误代码

将表单数据添加到后端时出现 CORS 问题

表单验证失败时出现 502 Bad Gateway 错误

为什么在提交表单时出现500错误?