html中隐藏的输入的长度是否有最大大小?


91

换一种说法:

<input type="hidden" value="Can I put as much as I want in here, or is there a limit?" />

如果是这样,那是什么?


6
我见过的最好的询问方法。
安德烈斯·莫拉莱斯

Answers:


58

这取决于您发送表单的方法。

使用GET,通常会同意约1-2 KB的限制,具体取决于浏览器和服务器的限制。

使用POST,浏览器没有技术限制,但是通常在服务器端使用-例如LimitRequestBody,参见Apache ,PHP post_max_size等。


请注意下面@naugtur指出的文本输入字段的问题-至少对于那些由不同浏览器施加的技术限制的问题。
奥利弗

我只是在3种最新的浏览器(IE9,FF 10 ESR,Chrome 24)上进行了一些测试,它们都提交了100KB的隐藏输入值,没有任何问题。因此,文本输入问题似乎在这里不适用。
奥利弗


@FranciscoCorralesMorales没关系,输入字段的类型是什么-计数的是最终结果,即您发送的所有数据的总和
Pekka

我发现Safari截断了隐藏的输入。使用textarea解决了这个问题。
布伦登·缪尔

29

警告!<input type="text">当文本长于65535(最大有符号整数大小)时,我遇到了问题

粘贴文本似乎会引起一些奇怪的内容溢出。在webkit中发现。

[编辑]

GET请求的大小并不完全受Pekka编写方式的限制。有2083个字节为全GET查询字符串的限制address?paramsInternet Explorer中仅 在其他浏览器中几乎没有任何限制,在FireFox超过100KB发送的GET查询为例。显然,服务器必须允许这些。

它没有包含在文档中,因此必须对其进行测试以了解其他浏览器的限制。IE:http//support.microsoft.com/kb/208427


8
+1我创建了这个jsFiddle来测试将输入值设置为一个非常长的字符串时会发生什么:jsfiddle.net/3TVPL/6我使用了一个65537个字符长的字符串。在我的测试中,Windows的Crome 24.0.1312和Safari 5.1.7在将值设置为该字符串之后都将输入框显示为空。如果我将字符串缩短为65536个字符,Chrome会显示正确的非空值。其他浏览器(Firefox 17,IE8,IE9,IE10,Opera 12.12)即使使用更长的字符串也没有任何问题(我上升到大约1.2 Mb的字符串)
beluga 2013年

@beluga很棒的工作。对性能有什么想法吗?在我虚弱的机器上,这是一个漫长的等待。我猜这就是为什么webkit不渲染它的原因。
naugtur

好点,也许。我目前没有进行任何性能测试。我有一台功能强大的机器,没有发现任何浏览器出现任何延迟。
beluga

这使我的FF无法使用约5分钟。无论如何,在表单域中放置大量内容并不是一个好主意:)
naugtur

移动浏览器和代理还可以截断隐藏的字段
George Filippakos 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.