在IE6,IE7中解决了太久的查询字符串?

时间:2010-08-23 19:46:29

标签: javascript html forms browser internet-explorer-6

我有一个表格可以在FF,Opera,Safari,Chrome和IE8中提交。 但它不会在IE6或IE7中提交......

我注意到99%确定问题是一个太长的查询字符串。 我有很多选择...

现在,将方法更改为POST是不可能的,所以请不要再问这个了...

我想知道,这个问题还有其他解决方法吗? 另外,为什么IE6和IE7只有这个问题?

如果没有解决方法,将“禁用”超出限制的“太多”输入有助于缩短查询字符串吗?换句话说,还会将禁用的表单元素添加到查询字符串吗?

由于

6 个答案:

答案 0 :(得分:2)

为了回答你的第二个问题,微软得到了答案: http://support.microsoft.com/kb/208427 最大URL为2,083个字符,因此GET请求生成的页面必须具有短于此的URL。

回答你的第三个问题, w3.org/TR/html401/interact/forms.html#h-17.12: “禁用控制无法成功”,即他们不会提交。

要回答你的问题,也许你可以对某些字段设置字符限制,例如textarea。另一种选择可能是使用javascript压缩输入,以某种方式对其进行散列,然后在提交的页面上对服务器端进行散乱。

答案 1 :(得分:1)

如果您确定这是问题,而不是其他百万个跨浏览器问题,您可以尝试ajax调用。将查询分成2个,3个,n个调用。

它只是一种形式吗?我可以问为什么POST是不可能的?

答案 2 :(得分:0)

它不是很好,但你可以将值推入cookie中

答案 3 :(得分:0)

首先回答您的上一个问题已禁用表单输入NOT GETted或POSTed回服务器

如果发布不是一个选项,你可以尝试删除非必要的表单输入,虽然俗气,减少元素名称的长度也会缩短查询字符串。

答案 4 :(得分:0)

您还可以尝试在JavaScript中对查询字符串值进行一些客户端压缩。

我使用base 93加密功能可以大大减少字符串大小。

你也可以试一下huffman压缩,虽然它的处理器更重。

http://rumkin.com/tools/compression/compress_huff.php

如果你只想要一个有限的字符集(小写a-z),你可以想出一些其他的技巧。

答案 5 :(得分:0)

查询字符串太长可以通过简单的IIS设置更改来避免错误。 http://www.mytecbits.com/microsoft/iis/query-string-too-long