在HTTP 414错误的情况下,jqGrid不会触发loadError
GET返回错误时,似乎没有触发jqGrid事件loadError:在HTTP 414错误的情况下,jqGrid不会触发loadError,jqgrid,Jqgrid,GET返回错误时,似乎没有触发jqGrid事件loadError: 414 Request-URI Too Long 它可以通过添加数据大于2048字节的post数据来复制。 也许有人知道如何在jqGrid中使用POST而不是GET请求 $grid.jqGrid{ url:“/greenarrow\u campaign\u statistics/get\u all\u for\u grid”, 数据类型:json, mtype:POST, colNames:[“活动名称”、“最后日期”、“邮件
414 Request-URI Too Long
它可以通过添加数据大于2048字节的post数据来复制。
也许有人知道如何在jqGrid中使用POST而不是GET请求
$grid.jqGrid{
url:“/greenarrow\u campaign\u statistics/get\u all\u for\u grid”,
数据类型:json,
mtype:POST,
colNames:[“活动名称”、“最后日期”、“邮件数量”、“收件人”、“硬反弹”、“打开”、“打开”、“点击”、“升级”、“升级”、“FBL公司”、“百分比”],
colModel:[
{name:'campaign_name',index:'campaign_name',width:220,sorttype:'text',align:'left',fixed:true},
{名称:'finishtime_str',索引:'finishtime_sec',宽度:140,排序类型:'number',对齐:'center',固定值:true},
{name:'count',index:'mailings_cnt',width:70,sorttype:'number',align:'right',fixed:true,hidden:true},
{名称:'recips_total',索引:'recips_total',宽度:75,排序类型:'number',对齐:'right',固定值:true},
{name:'num_bounces_hard',index:'num_bounces_hard',width:60,sorttype:'number',align:'right',fixed:true},
{名称:'num_bounces_hard_perc',索引:'num_bounces_hard_perc',宽度:40,排序类型:'number',对齐:'right',修复:true,格式化程序:percFormatter},
{name:'num_opens',index:'num_opens',width:75,sorttype:'number',align:'right',fixed:true},
{名称:'num_opens_perc',索引:'num_opens_perc',宽度:40,排序类型:'number',对齐:'right',修复:true,格式化程序:percFormatter},
{name:'num_clicks',index:'num_clicks',width:70,sorttype:'number',align:'right',fixed:true},
{名称:'num_clicks_perc',索引:'num_clicks_perc',宽度:40,排序类型:'number',对齐:'right',修复:true,格式化程序:percFormatter},
{名称:'num_upgrade',索引:'num_upgrade',宽度:60,排序类型:'number',对齐:'right',修复:true},
{名称:'num\u upgrade\u perc',索引:'num\u upgrade\u perc',宽度:40,排序类型:'number',对齐:'right',修复:true,格式化程序:percFormatter},
{name:'num_fbl',index:'num_fbl',width:60,sorttype:'number',align:'right',fixed:true},
{name:'num_fbl_perc',index:'num_fbl_perc',width:40,sorttype:'number',align:'right',fixed:true,formatter:percFormatter}
],
行列表:[20,30,50,100,500],
寻呼机:“寻呼机”,
rowNum:20,
shrinkToFit:是的,
sortname:“完成时间(秒)”,
viewrecords:是的,
分拣员:描述,
工具栏:[true,'top'],
多选:对,
multiboxonly:正确,
是的,
userDataOnFooter:true,
高度:自动,
标题:,
请求前:函数
{
$grid.jqGrid
“appendPostData”,
{
期间:$period.val,
起始日期:$“开始日期”。val,
收件人:$“结束日期”。val,
活动:$'input[name=campaign_names]'。val,
搜索文本:$“搜索文本”。val
};
},
ondblClickRow:函数ID
{
$'btn_edit'。触发“单击”;
},
loadComplete:functiondata{
$tr.jqgrow:odd.cssbackground,ddd c;
},
loadError:functionxhr,状态,错误{
jQueryrsperror.htmlType:+status+;Response:+xhr.status++xhr.statusText;
}
}
如果您检查jqGrid的源代码,请参阅您填写的内容,请参阅jqGrid仅使用的内容。所以这可能是您使用的jQuery版本中的一个问题 无论如何,问题的根源可能是HTTP GET的使用,而不是HTTP POST的使用。GET请求的所有参数将作为?p1=v1&p2=v2&p3=v3….追加到URL中。。。。URL长度存在一些限制,这些限制在不同的浏览器和不同的web服务器中是不同的。例如,Internet Explorer的URL最大长度为2083个字符,请参阅。其他web浏览器对URL有另一个限制,例如,请参见 从设计的角度来看,如果URL的总大小可以超过2K 2048个字符,则严格建议使用POST而不是GET。在这种情况下,您将不会遇到HTTP 414错误问题
因此,您应该修改服务器代码以回复POST请求,并包括jqGrid的mtype:POST选项或替换mtype:GET to mtype:POST。GET被使用,即使jqGrid属性mtype被设置为“POST”。Thanx Oleg,正如您看到我之前的评论一样,我已经尝试使用mtype属性设置POST,但jqGrid继续使用GET。“我在《萤火虫》中看到了它。@savgoran:不客气!这意味着您要么将mtype:POST放置在错误的位置,要么两次定义了mtype属性的值:一次使用POST值,一次使用GET值。无论如何,你需要分析你的问题文本中没有包含的源代码。顺便说一句,你应该把所有与问题相关的信息放在问题的文本中,而不是评论中。您可以使用问题下方的“编辑”按钮随时修改问题的文本。我已经添加了源代码,正如您看到的,mtype只添加了一次。@sa
vgoran:我建议您使用jquery.jqGrid.src.js,而不是jqGrid最后一个版本的jquery.jqGrid.min.js,并调试代码。您可以使用IE的开发人员工具,例如,按F12开始。您可以设置断点。此外,我不建议使用plugins/grid.postext.js中过时的appendPostData,而不建议您将postData与函数一起使用,请参见。@savgoran:我还建议您从colModel中删除所有索引属性,删除默认属性,如sorttype:'text',align:'left',使用cmTemplate:{fixed:true}选项定义像fixed:true这样的公共属性,并使用列模板请参见。例如,您有许多重复的代码,宽度为40,sorttype:'number',align:'right',formatter:percFormatter。您可以定义变量var myNum={width:40,sorttype:'number',align:'right',fixed:true,formatter:percFormatter}并使用template:myNum