我有一个重定向的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中,它就可以了!
答案 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的问题并不会令人感到意外。