我正在使用一个使用 JSON 字符串来建议其数据的jQuery 插件。
如果 JSON 字符串的元素少于 X,则一切正常。超过此限制没有任何反应,自动建议失败。我想这是因为有一种解析限制,但是我该如何绕过呢?我有一个 +5000 个元素的数组...
这是我的 json 代码:
var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';
谢谢 !
我正在使用一个使用 JSON 字符串来建议其数据的jQuery 插件。
如果 JSON 字符串的元素少于 X,则一切正常。超过此限制没有任何反应,自动建议失败。我想这是因为有一种解析限制,但是我该如何绕过呢?我有一个 +5000 个元素的数组...
这是我的 json 代码:
var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';
谢谢 !
$.getJSON()
正在使用该GET
方法,该方法受限于每个浏览器的不同长度。因此,在您的情况下,返回的结果显然超过了该限制。你想做的是改变
$.getJSON(settings.url,{search:text},function(data){if(data){buildResults(data,text);}
else{$(results).html('').hide();}});
在插件的源代码中放入
$.post(settings.url,{search:text},function(data){if(data){buildResults(data,text);}
else{$(results).html('').hide();}},'json');
这将使它POST
改为执行请求。此外,请确保在您的服务器端脚本中将对全局$_GET
数组的引用更改为(如果有)。$_POST
好的,所以我终于找到了这个问题的根源。由于简单的引号导致解析错误......不要问我为什么它只开始发生在一定数量的元素上,而所有引号都已经转义。
好吧,所以我改变了这个:
var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';
至
var SearchTxt = [{"t":"word one"},{"t":"word two"}, ...];
它奏效了。
JSON 没有“解析限制”,任何限制都是由解析 JSON 请求的服务器设置的。