【问题标题】:IE : window.open url which is more than 2,083 charactersIE:window.open url 超过 2,083 个字符
【发布时间】:2015-03-14 19:13:18
【问题描述】:

我从服务器获取一个带有大量数据作为查询字符串的 url

(例如http://www.test.com/?n=1,2,3,4,5,6,7,8.....100000),我想使用window.open() 打开它。

但是当我将 URL 传递给 window.open 时,URL 会被截断。在搜索了一段时间后,我发现 URL 的最大限制是 2,083 characters(IE) 所以它传递了查询字符串的一部分并截断了其余部分..

我该如何克服这个问题?

如果我需要提供更多详细信息,请告诉我。

【问题讨论】:

  • POST 数据而不是 GET 怎么样?
  • @Justinas 如果我没有得到解决方案,我肯定会尝试替代方案.. :(
  • 另外...我需要将 URL 传递给window.open...问题从这里开始...

标签: javascript internet-explorer url


【解决方案1】:

我认为唯一的解决方案是使用 POST 而不是 GET。只需使用表单,而不是 window.open。请参阅这个较旧的答案: https://stackoverflow.com/a/17089124/907420

【讨论】:

    【解决方案2】:

    您可以尝试使用 URL 缩短器,例如 goo.gl 或 bit.ly: https://goo.gl/

    谈到编程,您可以尝试自己缩短 URL-s,例如: Exact URL for your example, shorter by ~2000 characters. 其中 x..y 在服务器端被转换为 range(x, y) -> 1,2,3,4,5...100000,因为 x 和 y 分别为 1 和 100000

    【讨论】:

      【解决方案3】:

      如果您想坚持使用 GET(我建议您使用 POST),您可以尝试压缩参数。与其提供大量参数,不如创建一个保存参数的 javascript 对象,将其 jsonfy 并最终得到一个可以在另一端再次压缩和解压缩的字符串。之后,您可以反序列化 JSON 字符串并获得参数。根据参数的数量,它可能仍然不足以满足 GET 请求。

      但最后一个 POST 请求是我认为的最佳解决方案。

      【讨论】:

        猜你喜欢
        • 2011-09-12
        • 2012-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        • 1970-01-01
        • 2018-10-17
        • 1970-01-01
        相关资源
        最近更新 更多