0

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

这是带有参数的 url 的结尾:

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

当我使用 chrome 获取此 url 时,原始 url 被重定向到一个 url (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

为什么在;H38FR10;?/#我使用 IE 时最后一个参数被截断???

我要补充一点,如果我将 chrome 重定向到的 url 放入 IE 中,它就可以工作!

4

2 回答 2

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(正如我在这里讨论的那样)。如果您不能使用 HTTP/301 或 HTTP/302 重定向,则应考虑在启用脚本的情况下使用 SCRIPT 块导航到 URL,并将 META 移动到 NOSCRIPT 块中。

这个问题似乎是重复的:Meta refresh with semicolon and provides a workaround。

于 2013-07-15T18:48:16.627 回答
0

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

从理论上讲,在 URL 的这一部分有一个冒号应该没有问题,但是 IE8 出现问题也就不足为奇了。

于 2013-07-15T18:48:25.997 回答