使用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; 
}); 

有什么建议吗?

感谢,

兰斯

+0

做一个控制台。在发送之前登录数据,是否有些字符与&或如此混淆 – kobe 2011-05-22 05:49:00

+0

这里有一个建议,请看$ .serialize以简化您的代码:http://api.jquery.com/serialize/ ...也如果你正在处理复选框,检查一个未经检查的值是否真的被传递(例如,键存在于PHP $ _POST []) – davidosomething 2011-05-22 05:56:05

+0

谢谢。他们不是复选框类型的输入。他们是文本输入 – Lance 2011-05-22 06:00:15

如果值之一包含了一个特殊的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() { ... } 
});