我试图发送一些数据到ajax脚本,通常我创建一个表单标签,并给表单一个id,像这样:
<form id="myForm">
然后在ajax中添加以下内容:
data: $('#myForm').serialize(),
这将从我的表单发送所有表单数据。然而,这次我试图在没有表单标签的情况下运行它,相反,我有两个具有唯一id的字段,像这样:
<input type="text" id="first-name" name="first-name">
<input type="text" id="last-name" name="last-name">
我只想从这两个字段发送数据。因此,我将以下代码放入:
data: $("#first-name,#last-name"),
它似乎工作,但想知道这是否是正确和兼容的方式来做这件事。
谢谢
您还应该使用serialize()
函数,如
$("#first-name,#last-name").serialize()
https://jsfiddle.net/j2zn76o4/1/您可以动态地创建对象,如下所示:
...
data: {
'first_name': $('#first_name').val(),
'last_name': $('#last_name').val()
},
...
$.ajax()
可以自动转换数据,如果不是字符串,这就是为什么你不应该在这里使用serialize()
。
您必须以序列化字符串的形式发送数据:data: $("#first-name,#last-name").serialize()
;
jQuery API
数据类型:普通对象或字符串与请求一起发送给服务器的普通对象或字符串。
在这种情况下,我认为您可以使用PlainObject
作为unixarmy和psylogic表示。
您不需要使用serialize。您可以通过发布数据
来调用这些字段data : {
first_name: $('#first-name').val(),
last_name: $('#last-name').val(),
},
我希望这对你有帮助。