繁体   English   中英

在jquery中通过.post()传递参数是否有限制

[英]Are there limitations to passing parameters through .post() in jquery

我在CMS应用程序中广泛使用.post() 下面的工作代码示例将13个参数(在我的应用程序中最多)传递给processing.php文件,该文件可以正常工作。

当需要传递更多参数时,我只是简单地使用了action表单属性,该属性也可以正常工作。

但是,我有一个需要传递38个变量(包括大字符串)的应用程序,但是同时对action file执行检查,如果检查失败,则需要触发js confirmation alert以继续或取消。

我不太确定如何从processing.php文件中触发js confirmation alert ,以及如何在用户取消的情况下将信息完整地输入到原始文件中,从而返回原始文件。

但是,我确实了解如果使用.post()则如何实现此目的。

我的问题是:

如下所述,应该通过.post()发送给processing.php的参数数量是否有限制,或者我应该采取另一种方法来解决上述问题? 如果是这样,您会提出什么建议?

工作代码示例

// code element
    $( "#updateDefaultCodeButton" ).click(function(){
        var url = $('#updateDefaultCodeURL').val();     
        var code_font_family = $('#code_font_family').val(); 
        var code_font_color = $('#code_font_color').val();
        var code_font_weight = $('#code_font_weight').val();
        var code_font_size = $('#code_font_size').val();
        var code_bg_color = $('#code_bg_color').val();
        var code_pad_t = $('#code_pad_t').val(); 
        var code_pad_r = $('#code_pad_r').val(); 
        var code_pad_b = $('#code_pad_b').val();
        var code_pad_l = $('#code_pad_l').val(); 
        var code_w_pad_t = $('#code_w_pad_t').val(); 
        var code_w_pad_r = $('#code_w_pad_r').val(); 
        var code_w_pad_b = $('#code_w_pad_b').val();
        var code_w_pad_l = $('#code_w_pad_l').val(); 
        var postit = $.post( url, {
            code_font_family:code_font_family, 
            code_font_color:code_font_color,
            code_font_weight:code_font_weight,
            code_font_size:code_font_size, 
            code_bg_color:code_bg_color,
            code_pad_t:code_pad_t, 
            code_pad_r:code_pad_r, 
            code_pad_b:code_pad_b,
            code_pad_l:code_pad_l,
            code_w_pad_t:code_w_pad_t, 
            code_w_pad_r:code_w_pad_r, 
            code_w_pad_b:code_w_pad_b,
            code_w_pad_l:code_w_pad_l
        });     
        postit.done(function( data ) {window.location.replace("../generator.php?returnto=manage/global-styles-manage.php");});      
    });

php.ini中包含post_max_sizemax_input_vars ,这两者都会影响您可以发布到页面的数量。

http://php.net/manual/zh-CN/ini.core.php#ini.post-max-size http://php.net/manual/en/info.configuration.php#ini.max-input-vars

如果您发现自己超出限制,则可以进行调整(这将在错误日志中生成警告)。

38个变量应该罚款虽然- max_input_vars默认为1000,和post_max_size默认为2MB(我认为)让你的文本字符串必须是非常大的。

JQuery Ajax本身没有任何限制。 请求大小在服务器上受到限制,但是通过各种配置(取决于您的环境)进行限制。

阿帕奇:

  • LimitRequestBody ,默认情况下约为2Gb,对于64位可能更大,请查看错误日志以获取详细信息。

PHP:

  • 与POST大小直接相关的post_max_size
  • 可能不相关的upload_max_filesize不确定
  • max_input_time ,如果POSt花费的时间太长
  • max-input-nesting-level如果您的数据是具有很多子max-input-nesting-level的数组)
  • max_execution_time ,但可以肯定不是
  • memory_limit ,因为您可能超出了子进程允许的内存大小
  • max_input_vars ,如果您的数据数组包含许多元素

摘自: https : //stackoverflow.com/a/9691395/2853903

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM