我正在使用JQGrid从我在服务器上创建的RESTFul web services
获取日期
现在当我尝试点击网址http://www.example.com/event/getAllInfo
时,默认情况下jqGrid会将_search=false&nd=1332922405416&rows=20&page=1&sidx=&sord=asc
附加到其余网址,因此我的服务器无法获取数据,所以
1)我该如何删除它 2)并将其放回到一个网址中,使其看起来像 http://www.example.com/event/getAllInfo/false/1332922405416/20/1/0/asc
我可以像上面那样在服务器上创建url但是如何让jQGrid从RESTful而不是查询字符串中使用它
这是我的代码
jQuery("#list4").jqGrid({
url:"http://www.example.com/event/getAllInfo",
datatype: "json",
restful: true,
mtype: 'GET',
height: 250,
colNames:['id','title', 'description', 'create date','json','img','video'],
colModel:[
{name:'id',index:'e_info_id', width:60, sorttype:"int"},
{name:'title',index:'e_meta_title', width:90, sorttype:"date"},
{name:'name',index:'e_meta_description', width:100},
{name:'amount',index:'e_info_create_date', width:80, },
{name:'tax',index:'e_meta_JSON', width:80},
{name:'total',index:'e_meta_img', width:80},
{name:'note',index:'e_meta_video', width:150}
],
multiselect: true,
caption: "Manipulating Array Data"
});
答案 0 :(得分:2)
首先,RESTFul Web服务并不意味着您无法将其他参数发送到服务器。主要思想只是使用URL来标识资源并使用不同的HTTP动词(request methods)进行不同的操作。
只有当您不希望或不能实现服务器端分页,排序和数据过滤时,您才能从将要使用的URL中删除任何其他参数。这样做你可以添加
postData: ""
作为附加参数。在这种情况下,您应该使用loadonce: true
或至少rowNum: 10000
(或其他一些大值)。在这种情况下,使用gridview: true
作为附加参数非常重要(我建议始终使用参数)。服务器应该返回所有数据。如果您使用sortname
参数,则应对数据进行排序。
我建议您将Cache-Control: private, max-age=0
添加到服务器响应的标头中(请参阅here和here)。
更新:我建议您阅读有关URL编码问题的the answer。就像我之前在评论中写的那样,我认为_search=false&rows=20&page=1&sidx=&sord=asc
部分不属于资源。它主要是请求的附加选项或属性。您可以将信息放在loadBeforeSend回调中的HTTP标头内(参见here示例),但我认为这不是一个好主意,并且会简化RESTfull服务的使用,你发展。我建议您只删除nd=1332922405416
jqGrid选项prmNames: {nd: null}
并使用Cache-Control
来控制缓存或响应。