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

时间:2018-12-31 10:27:55

标签: 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” var的大小超过3000个字符,并且遇到类似

的异常
  

500内部服务器错误。

但是我的要求是无论param1多长时间,都将所有param1值传递给JSP。

有什么办法可以解决这个问题?

任何人都可以帮忙。

谢谢。

2 个答案:

答案 0 :(得分:4)

让我们总结一下事实:

  • 您需要发送长度不受限制的网址(引号:“无论param1多长”和“我都无法使用POST发送数据”)
  • 您的服务器配置为拒绝超过3000个的URL。

唯一合乎逻辑的结论是:无论您如何尝试,它都不起作用。除非您违反(或放松)规则。

您可能会想到的任何解决方案都是通常无法解决问题,但可能“足够好”的解决方法。在您的情况下,您是唯一知道“足够好”是什么的人。

示例解决方案:

  • 重新配置服务器以接受更长的URL
  • 将实际数据传递到cookie中,仅将其一部分放入url
  • 使用websocket连接或其他XHR调用在重定向之前发送数据

请注意,所有这些“解决方案”都需要作弊,因为您陈述的目标仍然是不可能的。

顺便说一句:网址缩短不是一个解决方案-它们没有神奇的作用,它们只是将人们从短网址重定向到长网址。如果目标服务器拒绝较长的URL,它将仍然无法工作。

答案 1 :(得分:0)

您可以尝试将方法从GET更改为POST并将所有params数据添加到正文中。 POST中的正文可以包含更多