首页 文章

将表单数据发布到jsponrpc endpoints 时出错-32700

提问于
浏览
0

我正在创建一个计费表单来将数据发送到jsonrpc endpoints . 虽然服务器返回状态码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"/> 
Surname: <input type="text" id="surname" name="surname" />
Email : <input type="text" id="email" name="email"/>
<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的资源学习网页,我将不胜感激 .

谢谢

1 回答

  • 0

    您需要捕获发送到服务器的有效负载,以查看导致无效Json-Rpc异常的原因 .

    你可以 console.log(postData) . 或者我建议你的浏览器调试器或fiddler .

    一旦你捕获了发送到服务器的json,你就可以将它放在json linter jsonLint.com中,看看是什么导致了你的麻烦 .

相关问题