【发布时间】:2011-01-27 11:06:46
【问题描述】:
我想执行 HTTP 重定向,但我目前执行的方式不起作用。当我尝试重定向时,它只打印状态代码和位置标题:
my $q = new CGI;
q->redirect(" http://www.google.com ");
【问题讨论】:
-
返回的状态码是什么?
-
呃,第二行? $美元符号?错字?
我想执行 HTTP 重定向,但我目前执行的方式不起作用。当我尝试重定向时,它只打印状态代码和位置标题:
my $q = new CGI;
q->redirect(" http://www.google.com ");
【问题讨论】:
我发现问题出在哪里,我在打印 200 ok 状态后尝试重定向,这将导致我将 URL 打印到页面而不是重定向到它
【讨论】:
URL 周围的空格是否有目的?根据 CGI 库的功能,这些可能会出现问题。我可以看到它将您的 URL 转换为 %20http://www.google.com%20 ,这将无法正确加载...
编辑:当我测试它时,它似乎没有做任何有害的事情,除了直接传递给浏览器。另一方面,您的代码中缺少use、$ 和print——这是您正在尝试的实际代码,还是其他?
【讨论】:
您需要 CGI 在顶部吗?
use CGI;
my $query=new CGI;
print $query->redirect('http://www.foo.com');
这对我有用
【讨论】: