2014-09-12 59 views
0

在Windows 2008 R2服务器上运行Coldfusion 9。尝试提交大量参数时,JQuery函数会停止提取数据

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

这一切工作正常,直到我们添加了大量记录的新公司。这会翻译成大量的URL查询字符串,并提交大量参数进行处理。那时候我们开始有问题了。当我尝试直接提交URL时,我注意到,如果URL中的字符总数超过2114,我将得到错误状态代码302重定向,并且不显示任何内容。

我试着玩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 

============ UPDATE ==============

我改变了POST风格:

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

结果我得到错误“PLANENROLLDATE_ID参数来GetBillsArr功能是必需的,但不获通过就行-1发生
的错误。”

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

从控制台:

fM 9 
fY 2014 
method GetBillsArr 
planenrolldate_id[] 564 
planenrolldate_id[] 561 
sponsor_id 59 
tM 9 
tY 2014 
+0

为什么当你使用'post'时你需要创建一个大的查询字符串?你甚至没有发送数据作为 – charlietfl 2014-09-12 15:58:21

+0

的一部分,我改变了POST风格,但现在出现错误。我在我的帖子的UPDATE中描述了它。谢谢 – user1706426 2014-09-12 17:02:10

+0

好像你需要调整你的CF代码来处理数组发送 – charlietfl 2014-09-12 17:07:16

回答

1

请勿使用GET式URL进行POST。你是不是真的张贴这样的....

用POST发送的参数作为给脚本使用数据

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

,当然看在你的CFM脚本请求的发布版本。

-1

尝试设置以下参数和除检查 的php.ini

的post_max_size = 20M 的upload_max_filesize = 20M htaccess的

php_value的post_max_size 20M php_value upload_max_filesize 20M 要使用哪一个取决于您有权访问的内容。

+1

-1什么是PHP。ini或htaccess与coldfusion有关吗? – charlietfl 2014-09-12 15:59:19