在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
为什么当你使用'post'时你需要创建一个大的查询字符串?你甚至没有发送数据作为 – charlietfl 2014-09-12 15:58:21
的一部分,我改变了POST风格,但现在出现错误。我在我的帖子的UPDATE中描述了它。谢谢 – user1706426 2014-09-12 17:02:10
好像你需要调整你的CF代码来处理数组发送 – charlietfl 2014-09-12 17:07:16