代码之家  ›  专栏  ›  技术社区  ›  user1706426

JQuery函数在尝试提交大量参数时停止获取数据

  •  0
  • user1706426  · 技术社区  · 10 年前

    在Windows 2008 R2 Server上运行Coldfusion 9。

    我有一个带有多个下拉列表的cfm页面(有些是cfselect),并动态生成了相互依赖的复选框列表。我使用JQuery向cfc函数提交数据并显示数据。

    在我们加入了一家拥有大量记录的新公司之前,一切都很顺利。这转换为包含大量提交处理的参数的大型URL查询字符串。这就是我们开始出现问题的时候。我注意到,当尝试直接提交URL时,如果URL中的字符总数超过2114,我会收到错误状态代码302 Redirect,并且没有显示任何内容。

    我尝试在neo-runtime.xml中将postParametersLimit和postSizeLimit增加到1000.0并重新启动服务器,但这并没有帮助。

    下面是jquery函数:

    function populateBills(){
    var plID;
    
    if ($('#planenrolldate_id').val() == undefined)
      plID = $('input[name=planenrolldate_id]').val();
    else
      plID = $('#planenrolldate_id').val();
    
    var sID = $('#sponsor_id').val(); 
    var pID = $('#plan_id').val();
    
    var fromMonth = $('#from_month').val();
    var fromYear = $('#from_year').val();
    var toMonth = $('#to_month').val();
    var toYear = $('#to_year').val();
    
    $.ajax({
      type:"POST",
     url:"../components/billing/custompremstatus.cfc?method=GetBillsArr&planenrolldate_id=" + plID + "&sponsorid=" + sID + "&fM=" + fromMonth + "&fY=" + fromYear + "&tM=" + toMonth + "&tY=" + toYear,
    dataType: "json",          
    success: 
     function(data){                  
      $.each(data, function(index, item) {
       addBillsCheckboxes(item.bill_id,item.bill_period);
      });
    }, //end the error function
    error: 
     function(){
      alert("An error has occurred while fetching bills");
     } //end the error function
    }); // end ajax call       
     } // end of function
    

    ==========更新==============

    我将POST样式更改为:

    url:"../components/billing/custompremstat.cfc",
                data: {
                    method: "GetBillsArr",
                    sponsor_id: sID,
                    planenrolldate_id: plID,
                    fM: fromMonth, 
                    fY: fromYear, 
                    tM: toMonth, 
                    tY: toYear
                },
    

    结果,我收到错误“GetBillsArr函数的PLAENROLLDATE_ID参数是必需的,但未传入。
    第-1行出现错误。"

    在控制台planenrolldate_id看起来像array。如何更改参数?

    从控制台:

    fM  9
    fY  2014
    method  GetBillsArr
    planenrolldate_id[] 564
    planenrolldate_id[] 561
    sponsor_id  59
    tM  9
    tY  2014
    
    2 回复  |  直到 10 年前
        1
  •  1
  •   BReal14    10 年前

    不要使用GET样式的url进行POST。你真的不是这样发帖的。。。。

    将参数作为数据发送到带有POST的脚本

    $.ajax({
      type: "POST",
      url: "../components/billing/custompremstatus.cfc",
      data: { 
         method : "GetBillsArr",
         planenrolldate_id : plID,
        // ... etc
     }
    });
    

    当然,在CFM脚本中查找请求的发布版本。

        2
  •  -1
  •   Dharmesh Patel    10 年前

    尝试设置以下参数,然后检查 php.ini

    后置最大值=20M 上传_max_filesize=20M .htaccess

    php值post_max_size 20M php_value upload_max_filesize 20M 使用哪一个取决于您可以访问的内容。