gpt4 book ai didi

javascript 对象最大大小限制

转载 作者:IT王子 更新时间:2023-10-29 03:12:24 28 4
gpt4 key购买 nike

我正在尝试使用 jquery.ajax 方法将 JavaScript 变量传递到服务器端。

我正在尝试创建一个 json 字符串,但是当变量的长度达到 10000 时,没有更多的数据附加到该字符串。

var jsonObj = '{"code":"' + code + '","defaultfile":"' + defaultfile + '","filename":"' + currentFile + '","lstResDef":[';
$.each(keys, function(i, item) {
i = i + 1;
var value = $("#value" + i).val();
var value = value.replace(/"/g, "\\\"");
jsonObj = jsonObj + '{';
jsonObj = jsonObj + '"Key":' + '"' + Encoder.htmlEncode($(this).html()) + '"' + "," + '"Value"' + ':' + '"' + Encoder.htmlEncode(value) + '"';
jsonObj = jsonObj + '},';
alert(jsonObj);
});

jsonObj = jsonObj + ']}';

这里,当var jsonObj的字符长度为10000时,不追加后面的值。

看起来有一些限制。

最佳答案

字符串长度没有这样的限制。可以肯定的是,我只是测试创建一个包含 60 兆字节的字符串。

问题很可能是您在 GET 请求中发送数据,所以它是在 URL 中发送的。不同的浏览器对 URL 的限制不同,其中 IE 的限制最低,约为 2 kB。为安全起见,您永远不应在 GET 请求中发送超过 1 KB 的数据。

要发送这么多数据,您必须改为在 POST 请求中发送。浏览器对帖子的大小没有硬性限制,但服务器对请求的大小有限制。例如,IIS 的默认限制为 4 MB,但如果您需要发送比此更多的数据,则可以调整该限制。

此外,您不应该使用 += 来连接长字符串。对于每次迭代,要移动的数据越来越多,因此您拥有的项目越多,它就会变得越来越慢。将字符串放入一个数组中并一次连接所有项目:

var items = $.map(keys, function(item, i) {
var value = $("#value" + (i+1)).val().replace(/"/g, "\\\"");
return
'{"Key":' + '"' + Encoder.htmlEncode($(this).html()) + '"' + ",'+
'" + '"Value"' + ':' + '"' + Encoder.htmlEncode(value) + '"}';
});
var jsonObj =
'{"code":"' + code + '",'+
'"defaultfile":"' + defaultfile + '",'+
'"filename":"' + currentFile + '",'+
'"lstResDef":[' + items.join(',') + ']}';

关于javascript 对象最大大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5926263/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com