url中的分号 - chrome vs IE&火狐

时间:2014-11-17 21:45:27

标签: google-chrome internet-explorer firefox download

给定一个网址,我的应用程序会尝试下载该文件,例如,http://foo.com/bar.bat会下载bar.bat

现在,给定最后用分号分隔的版本号,我的应用程序将从我的源代码控制中检索该特定版本并下载该文件。

例如,http://foo.com/bar.bat;1应该下载bar.bat版本1。 http://foo.com/bar.bat;2应该下载bar.bat版本2等。

问题:
Chrome会将正确的版本下载为bat文件 IE(我正在使用IE 11)和firefox下载正确的版本但是将'bat; 1'或'bat; 2'视为文件类型而不是'bat'。

我有mime类型作为应用程序/ bat。我试过'%3b'而不是';'但同样的问题。

不知道还有什么要检查。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

为什么不使用http://foo.com/bar.bat?version=1?这应该适用于每个浏览器,因为它是一个标准。

答案 1 :(得分:0)

我通过在Perl中更改代码解决了这个问题(当然,在Google的帮助下)。

如果有人在将来感兴趣或面对这个问题,这就是我所做的。

在perl代码中,重定向到http://foo.com/bar.bat;1正在以相对路径发生。

print $query->redirect(-uri => $redirect); # $redirect being '/bar.bat;1'

我给出了如下的绝对路径

    my $RemoteHost = $query->url(-base=>1); #this gets http://foo.com
    my $newredirect = "$RemoteHost$redirect";     
    print $query->redirect(-uri => $newredirect);

我会将erikvold标记为答案,因为他触发我查看perl代码。 谢谢Jonathan和erikvold。