IE截断URL?

时间:2013-07-15 18:33:21

标签: internet-explorer http url truncate

我有一个重定向的URL(HTTP)。

这是带有参数的网址的结尾:

/c.html?ufl=c&rtr=on&s=x9w5pl,33gz,2cw,75vq,lelf,gwtv,jxou&RESNET_CODE=FIE&OFFERCODE=H38FR10

当我使用chrome来获取此网址时,原始网址会被重定向到以这样结束的网址(HTTPS):

/cgi-bin/LANSAWEB?procfun+rn+Resnet+FIE+funcparms+UP(A2560):;H38FR10;?/#

然而,当我使用IE(我正在使用版本8进行测试))时,它会以某种方式删除最后一个参数,而url(HTTPS)看起来像这样:

/cgi-bin/LANSAWEB?procfun+rn+Resnet+FIE+funcparms+UP(A2560):

我使用fiddler确定Chrome和IE都发布了相同的Get请求(如上所示):

/c.html?ufl=c&rtr=on&s=x9w5pl,33gz,2cw,75vq,lelf,gwtv,jxou&RESNET_CODE=FIE&OFFERCODE=H38FR10

当我使用IE ???

时,为什么世界上最后一个参数;H38FR10;?/#被截断

我想补充一点,如果我把chrome重定向到的url,并把它放在IE中,它就可以了!

2 个答案:

答案 0 :(得分:0)

您的加价是:

<html><head>
<meta http-equiv="refresh" content="0; URL=https://HOSTNAMEHERE/cgi-bin/LANSAWEB?procfun+rn+Resnet+FIE+funcparms+UP(A2560):;H38FR10;?/#">
 </head></html>

这里的问题是META标记的CONTENT值由分号分隔。

如果更改标记以将URL包装在单引号中,则可以在IE中使用:

<meta http-equiv="refresh" content="0; URL='https://HOSTNAMEHERE/cgi-bin/LANSAWEB?procfun+rn+Resnet+FIE+funcparms+UP(A2560):;H38FR10;?/#'">

有充分的理由不使用META REFRESH(正如我所讨论的here)。如果您不能使用HTTP / 301或HTTP / 302重定向,则应考虑使用SCRIPT块在启用脚本时导航到URL,并将META移动到NOSCRIPT块中。

此问题似乎是重复的:Meta refresh with semicolon并提供了解决方法。

答案 1 :(得分:0)

冒号是URL中的特殊字符,因此您应该将其转义,即将其转换为URL编码的字符串%3A

理论上,在URL的这一部分中使用冒号不应该是一个问题,但IE8的问题并不会令人感到意外。