Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在HTTP 414错误的情况下,jqGrid不会触发loadError_Jqgrid - Fatal编程技术网

在HTTP 414错误的情况下,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:[“活动名称”、“最后日期”、“邮件

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:[“活动名称”、“最后日期”、“邮件数量”、“收件人”、“硬反弹”、“打开”、“打开”、“点击”、“升级”、“升级”、“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