使用 jQuery ajax 提交大型表单,而不使用 serialize()
Submitting a large form using jQuery ajax, without using serialize()
我想使用 jQuery Ajax 提交一个大表单,但在搜索了一整天的解决方案后似乎无法实现。希望我是错的。
基于关于此主题的所有众多话题,这就是我目前所了解的。
function familyUpdate() {
familyOverlay(true);
var form = $("#familyform");
var formdata = form.serialize();
$.ajax({
url: 'family-update.php',
data: {
cache: false,
type: 'post',
dataType: 'json',
data: formdata
},
success: function () {
familyOverlay(false);
},
error: function () {
alert("Unable to update family");
familyOverlay(false);
}
});
}
问题是我的表单真的很大,据我所知,使用 serialize() 生成一个字符串来提交并实质上将我的 POST 转换为 GET,这意味着我遇到了我的浏览器的 URI 长度限制,因此没有提交整个表单。
有没有一种方法可以在不使用 serialize() 的情况下使用 POST 提交我的表单,这样我就不必担心数据的长度?
原来我的问题出在我的语法上。
具体这部分:
data: {
cache: false,
type: 'post',
dataType: 'json',
data: formdata
},
本来应该...
data: formdata,
type: 'POST',
所以这有效:
function familyUpdate(){
familyOverlay(true);
var form = $("#familyform");
var formdata = form.serialize();
$.ajax({
url: 'family-update.php',
type: 'POST',
data: formdata,
success: function() {
familyOverlay(false);
},
error: function(){
alert("Unable to update family");
familyOverlay(false);
}
});
}
唉。浪费我最多时间的总是最愚蠢的错误。
我想使用 jQuery Ajax 提交一个大表单,但在搜索了一整天的解决方案后似乎无法实现。希望我是错的。
基于关于此主题的所有众多话题,这就是我目前所了解的。
function familyUpdate() {
familyOverlay(true);
var form = $("#familyform");
var formdata = form.serialize();
$.ajax({
url: 'family-update.php',
data: {
cache: false,
type: 'post',
dataType: 'json',
data: formdata
},
success: function () {
familyOverlay(false);
},
error: function () {
alert("Unable to update family");
familyOverlay(false);
}
});
}
问题是我的表单真的很大,据我所知,使用 serialize() 生成一个字符串来提交并实质上将我的 POST 转换为 GET,这意味着我遇到了我的浏览器的 URI 长度限制,因此没有提交整个表单。
有没有一种方法可以在不使用 serialize() 的情况下使用 POST 提交我的表单,这样我就不必担心数据的长度?
原来我的问题出在我的语法上。
具体这部分:
data: {
cache: false,
type: 'post',
dataType: 'json',
data: formdata
},
本来应该...
data: formdata,
type: 'POST',
所以这有效:
function familyUpdate(){
familyOverlay(true);
var form = $("#familyform");
var formdata = form.serialize();
$.ajax({
url: 'family-update.php',
type: 'POST',
data: formdata,
success: function() {
familyOverlay(false);
},
error: function(){
alert("Unable to update family");
familyOverlay(false);
}
});
}
唉。浪费我最多时间的总是最愚蠢的错误。