【问题标题】:IE truncating URL?IE 截断 URL?
【发布时间】:2013-07-15 18:33:20
【问题描述】:

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

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

/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

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

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

【问题讨论】:

标签: internet-explorer http url truncate


【解决方案1】:

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

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

【讨论】:

  • 嗯...问题是,如果我把 chrome 重定向到的 url 放到 IE 中,它就可以了!
  • 好吧,如果不是不一致的话,旧的 IE 版本就什么都不是。您是否尝试过使用 URL 编码?有什么不同吗?
【解决方案2】:

您的标记是:

<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 并提供了解决方法。

【讨论】:

  • 好的,我发送了文件。谢谢!
  • 刚刚添加了一条评论...如果我将 chrome 重定向到的 url 放入 IE 中,它可以工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-10
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多