jqgrid内部的jquery自动完成插件-post请求只触发一次

jqgrid内部的jquery自动完成插件-post请求只触发一次,jqgrid,Jqgrid,我有一个在JQGrid中输入JQuery Autocomplete(不是JQuery UI的一部分)的遗留项目,代码如下: {name : 'city',index : 'city',width : 300, editable: true, editoptions: { dataInit : function (elem){ $(elem).autocomplete('json/get_cities', {mustMatch: true, matc

我有一个在JQGrid中输入JQuery Autocomplete(不是JQuery UI的一部分)的遗留项目,代码如下:

{name : 'city',index : 'city',width : 300, editable: true,
    editoptions: {
        dataInit : function (elem){
            $(elem).autocomplete('json/get_cities', {mustMatch: true, matchContains: true, minChars: 2, max:10});
        }
    } 
},
当我开始在第二个字母上输入ajax调用触发器时,但只有一次。在第三、第四等日期没有连续的电话。另外,当我开始删除符号时,当输入中只剩下一个字符时,就会触发另一个ajax调用


有什么办法解决这个问题吗?

在我看来,这个问题与jqGrid无关。然而,问题是显而易见的。对URL
json/get_cities
的第一个请求将被缓存,并将用于下一个调用

对URL
json/get\u cities
的请求是HTTP get请求。因此,您可以通过设置HTTP头来解决这个问题

Cache-Control: private, max-age=0
json/get_cities
的响应中。有关其他缓存头的详细信息或讨论,请参阅

我不是PHP开发人员,但似乎您可以使用



谢谢你的回答。在我的响应标题中,我可以看到:Cache Control no store,no Cache,必须重新验证,max age=0,但JQuery autocomplete仍然只触发了一个请求。我最终通过添加到设置cacheLength:0并删除mustMatch:true,使其正常工作。@Ross\u 102:抱歉,但我包含了对的引用,以表明只有在不确定该做什么的情况下才能插入许多不需要的缓存头。
无存储
与其他存储的组合没有意义。如果
Cache-Control:private,max-age=0
Cache-Control:private,no-store
不起作用,并且您确实验证了头被放置在HTTP响应中,那么您应该搜索问题的另一个原因。您应该使用IE/Chrome的开发工具或查看HTTP流量。您是否进行了HTTP跟踪?抱歉,jQuery UI或jqGrid中既不存在
mustMatch
也不存在
cacheLength
。您使用哪个版本的jQueryUI或jqGrid?Oleg,我让它工作了。正如您所说,这是缓存,我刚刚在JQuery Autocomplete中禁用了它,现在它的行为符合预期。谢谢该项目使用jQuery自动完成插件1.2.2:)