4

我正在使用一个使用 JSON 字符串来建议其数据的jQuery 插件。

如果 JSON 字符串的元素少于 X,则一切正常。超过此限制没有任何反应,自动建议失败。我想这是因为有一种解析限制,但是我该如何绕过呢?我有一个 +5000 个元素的数组...

这是我的 json 代码:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';

谢谢 !

4

3 回答 3

3

$.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

于 2012-11-16T18:00:03.553 回答
1

好的,所以我终于找到了这个问题的根源。由于简单的引号导致解析错误......不要问我为什么它只开始发生在一定数量的元素上,而所有引号都已经转义。

好吧,所以我改变了这个:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';

var SearchTxt = [{"t":"word one"},{"t":"word two"}, ...];

它奏效了。

于 2012-11-20T09:05:11.843 回答
0

JSON 没有“解析限制”,任何限制都是由解析 JSON 请求的服务器设置的。

于 2012-11-16T16:16:35.410 回答