使用AJAX提交表单时,通过serialize属性时如何拼接其他数据
因在项目开发中用到了serialize来快速提交数据,但是因为不是通过键值对的写法传输给后台的,所以如果想要再传递了表单数据之后还想继续提交别的数据,就要才用数据拼接的方法。
function Submission() {
$.ajax({
//几个参数需要注意一下
type: "POST", //方法类型
dataType: "json", //预期服务器返回的数据类型
url: "http://XXXXXX/api/machine/add", //url
data: $("#defaultForm").serialize() //这里我是用了serialize()的方法快速获取了id为defaultForm的表单内的所有数据。
success: function(data) {
console.log(data)
},
error: function() {
alert("异常!");
}
});
}
----------------------------分割线
//上面的写法有个弊端就是,如果我想要传输其他的数据跟form表单数据一起传递给后端,会无从下手,因为他的data数据并不是以键值对的方式显示的。
//下面是我通过获取后拿到存储在localStorage里面的数据用于传给后台的
let _session_id =window.localStorage.getItem("_session_id")
let role_id =window.localStorage.getItem("role_id")
function Submission() {
let formData = $("#defaultForm").serialize()
$.ajax({
//几个参数需要注意一下
type: "POST", //方法类型
dataType: "json", //预期服务器返回的数据类型
url: "http://XXXXXX/api/machine/add", //url
data: formData+"&_session_id="+_session_id+"&role_id="+role_id,//在传递的form表单数据之后直接通过拼接字符串把想要给后台的数据一起传输过去
success: function(data) {
console.log(data)
},
error: function() {
alert("异常!");
}
});
}
formData后面拼接的数据可以无限延长,但是需要注意的是一定要加&因为后台接收到的form表单数据就是通过&来分割数据的!