我正在尝试使用 jquery 评估来自 ajax GET 请求的超过 50,000 个字符的字符串。在较小的数据集上,代码将正确评估它,但 firefox 会抛出错误“未终止的字符串文字”。 经过一些挖掘,我尝试使用来自 JSON.org 的外部库,将\n、\r\n 和\r 替换为空字符串(在服务器上),并用括号封装 eval()。
这是一些客户端代码(javascript):
http://pastebin.com/wsXuN7tb <- 这里我使用了一个外部库来完成它
通过firebug看了一下,发现服务器返回的json字符串不完整,在5万左右的字符处被 chop 了。我知道服务器正在返回一个有效的 json 字符串,因为我在将它发送给客户端之前将它转储到一个文件中,但客户端最终收到了一个 chop 的版本。
为什么会这样?有什么办法解决这个问题吗?
最佳答案
URL 的长度限制因浏览器而异。 50,000 多个字符绝对超过了每个浏览器的限制。对于如此大的数据,您应该改用 POST。
对于此限制,您无能为力,因为它是浏览器限制,您无法在服务器上更改。您唯一可以做的就是切换到使用 POST。
关于javascript - 将 50,000 多个字符的 JSON 字符串解析为 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7706607/