使用jQuery AJAX函数可以发送到服务器的数据量有限制吗?
问题描述:
我正在使用jquery提交表单,并且出于一些离奇的原因,只有前5个变量被发送到PHP文件。代码如下:使用jQuery AJAX函数可以发送到服务器的数据量有限制吗?
$("form#alcs_submit").submit(function() {
var game_one = $('#game_one').val();
var game_two = $('#game_two').val();
var game_three = $('#game_three').val();
var game_four = $('#game_four').val();
var game_five = $('#game_five').val();
var game_six = $('#game_six').val();
var game_seven = $('#game_seven').val();
$.ajax({
type: "POST",
url: "mlb_alcs_edit.php",
data: "game_one="+ game_one +"& game_two="+ game_two +"& game_three="+ game_three +"& game_four="+ game_four +"& game_five="+ game_five +"& game_six="+ game_six +"& game_seven="+ game_seven,
success: function()
{
alert(game_six);
$('#bracket').load('mlb_alcs_changed.php?action=saved');
}
});
return false;
});
有什么建议吗?
感谢,
兰斯
答
如果值之一包含了一个特殊的URL字符,那么它可以打破你的查询字符串。你应该URL编码通过他们在他们的查询字符串,如在此之前这些值:
var game_one = encodeURIComponent($('#game_one').val());
而且,与号之前删除空格:
"& game_two=" + game_two
应该"&game_two=" + game_two
或者,你可以让jQuery的通过传递一个对象而不是字符串来处理POST数据的序列化为键/值对:
var gameData =
{
game_one = $('#game_one').val(),
game_two = $('#game_two').val(),
game_three = $('#game_three').val(),
game_four = $('#game_four').val(),
game_five = $('#game_five').val(),
game_six = $('#game_six').val(),
game_seven = $('#game_seven').val()
}
$.ajax({
type: "POST",
url: "mlb_alcs_edit.php",
data: gameData,
success: function() { ... }
});
做一个控制台。在发送之前登录数据,是否有些字符与&或如此混淆 – kobe 2011-05-22 05:49:00
这里有一个建议,请看$ .serialize以简化您的代码:http://api.jquery.com/serialize/ ...也如果你正在处理复选框,检查一个未经检查的值是否真的被传递(例如,键存在于PHP $ _POST []) – davidosomething 2011-05-22 05:56:05
谢谢。他们不是复选框类型的输入。他们是文本输入 – Lance 2011-05-22 06:00:15