簡體   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