使用 jQuery ajax json 发送表单数据

28 浏览
0 Comments

使用 jQuery ajax json 发送表单数据

我是PHP/jquery的新手。

我想问一下如何用ajax以json格式发送表单字段(如姓名、年龄等)的json数据。不幸的是,我找不到任何相关信息,甚至不知道是否可以动态地实现它。谷歌搜索只会返回像手动构建数据一样的答案,比如:name: X Yage: 32等等。

有没有什么办法可以做到这一点?

谢谢帮助!

编辑:

姓名: 年龄: 喜欢的颜色:

0
0 Comments

问题的原因是在使用jQuery的ajax方法发送表单数据时,如果使用了serialize()方法来序列化表单数据,就不需要将data参数设置为一个对象,而只需要将data参数设置为$('form').serialize()即可。

解决方法是将代码中的data参数修改为data: $('form').serialize()。这样就可以正确地将表单数据发送到指定的URL,并且以json格式接收返回的数据。

0
0 Comments

问题的出现原因是发起的POST请求中的数据格式不正确,导致后台无法正确解析数据。解决方法是通过使用jQuery的ajax方法,并设置contentType为'application/json;charset=UTF-8'来确保发送的数据是以JSON格式进行传输。

在这个问题的回答中,提到了将表单数据转换成JSON格式的方法,但是转换后的JSON内容实际上是一个带有URL编码内容的字符串。为了实现更真实的JSON POST请求,可以参考链接中的解决方案,使用formToJson函数将表单数据转换为JSON,并在jQuery的ajax调用参数中添加contentType: 'application/json;charset=UTF-8'。

以下是具体的代码示例:

$.ajax({
    url: 'test.php',
    type: "POST",
    dataType: 'json',
    data: formToJson($("form")),
    contentType: 'application/json;charset=UTF-8',
    ...
})

作者在回答中提到,这是唯一正确的答案。之前的回答实际上都是在提交表单的内容。这个解决方法值得更多的赞同。

其中,作者也提到了之前遗漏的关键点,即设置Content-Type。感谢作者的回答!

0
0 Comments

在这个问题中,出现的原因是jQuery的ajax请求默认以url-encoded表单数据的形式发送,而不是以JSON的形式发送。这导致了在服务器端接收到的数据并不是JSON格式的数据。

为了解决这个问题,我们需要修改ajax请求的数据类型为JSON,并将表单数据序列化为JSON格式的字符串。具体的解决方法如下所示:

1. 首先,在index.html文件中的ajax请求部分,将dataType的值改为'json',表示希望返回的数据类型是JSON格式的数据。

2. 接着,在data的值中,使用jQuery的serialize()方法将表单数据序列化为JSON格式的字符串。

修改后的index.html文件如下所示:






Name: Age: FavColor:

在这个修改后的代码中,我们使用了JSON.stringify()方法将序列化后的表单数据转换为JSON格式的字符串。

通过以上的修改,我们可以确保ajax请求发送的数据是以JSON格式的字符串形式发送到服务器端,从而解决了问题。

0