有没有办法使用Javascript函数来缩短URL

有没有办法使用Javascript函数来缩短URL,javascript,Javascript,我有一个Javascript函数,它调用window.location.href 下面是代码的示例 function xyz () { var URL = "https://www.web.com/getNode.jsp?param1=abc|def|ghi|......."; window.location.href = URL; } 这里param1可以接受任意数量的值。但问题是,如果URL变量的大小超过3000个字符,就会遇到如下异常 500内部服务器错误 但我的要求是将

我有一个Javascript函数,它调用window.location.href

下面是代码的示例

function xyz () {
    var URL = "https://www.web.com/getNode.jsp?param1=abc|def|ghi|.......";
    window.location.href = URL;
}
这里param1可以接受任意数量的值。但问题是,如果URL变量的大小超过3000个字符,就会遇到如下异常

500内部服务器错误

但我的要求是将所有param1值传递给JSP,不管param1有多长

有没有办法解决这个问题

谁能帮忙吗


谢谢。

您可以尝试将方法从“获取”更改为“发布”,并将所有参数数据添加到正文中。POST中的Body可以包含更多内容

让我们总结一下事实:

您需要发送长度不限的URL引号:无论param1有多长,我都没有使用POST发送数据的选项 您的服务器配置为拒绝长度超过3000的URL。 唯一合乎逻辑的结论是:无论你如何尝试,它都不会起作用。除非你违反或放松规则

您可能想到的任何解决方案都将是变通办法,通常不会解决问题,但可能已经足够好了。在你的环境中,你是唯一知道什么是足够好的人

示例解决方案:

重新配置服务器以接受更长的URL 在cookie中传递实际数据,并仅将部分数据放入url中 使用websocket连接或附加XHR调用在重定向之前发送数据 请注意,所有这些解决方案都需要作弊,因为您声明的目标仍然不可能实现


顺便说一句:url缩短器不是一个解决方案-他们不会变魔术,他们只是将人们从一个短url重定向到一个长url。如果目标服务器拒绝更长的URL,它仍然不能工作。

我会考虑使用另一端解密的字符串压缩器,但它可能不够,这是X/Y解决方案。有没有可能改用POST请求?这是因为GET请求的大小是有限的。要无限制地发送数据,请使用POST请求解决潜在问题:URL真的必须这么长,还是可以省略一些数据?也许是通过存储数据服务器端,而只是传递一个令牌。谢谢你的回答。我没有选择使用POST方法发送数据。您可以发送多个请求并合并它们吗?