我有一个期望接收json的Web服务,如下所示:
{"first_name":"test","last_name":"teste","email":"moi@someplace.com","mobile":"+44 22 2222 2222", "password":"testing"}
我在jquery中的ajax调用:
$.ajax({ type: "POST", url: hb_base_url + "consumer", contentType: "application/json", dataType: "json", data: { first_name: $("#namec").val(), last_name: $("#surnamec").val(), email: $("#emailc").val(), mobile: $("#numberc").val(), password: $("#passwordc").val() }, success: function(response) { console.log(response); }, error: function(response) { console.log(response); } });
有什么方法可以检查数据的发送格式?据说我没有将正确的JSON发送到服务器(这是验证的第一步)。
我的jquery代码是否发送有效的JSON或我错过了什么?
您实际上并不是在发送JSON。您正在将对象传递为data,但是您需要对对象进行字符串化,然后传递字符串。
data
您dataType: "json"只告诉jQuery您希望它解析返回的JSON,但这并不意味着jQuery将自动对您的请求数据进行字符串化处理。
dataType: "json"
改成:
$.ajax({ type: "POST", url: hb_base_url + "consumer", contentType: "application/json", dataType: "json", data: JSON.stringify({ first_name: $("#namec").val(), last_name: $("#surnamec").val(), email: $("#emailc").val(), mobile: $("#numberc").val(), password: $("#passwordc").val() }), success: function(response) { console.log(response); }, error: function(response) { console.log(response); } });