将表单数据发布到jsponrpc端点

时间:2017-10-04 15:48:45

标签: javascript jquery ajax asp.net-web-api json-rpc

我正在创建一个结算表单,以便将数据发送到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的资源学习网页,我将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

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

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

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