Firefox检测到服务器正在以永远不会完成的方式重定向此地址的请求

时间:2009-10-10 12:27:06

标签: java apache grails groovy

我正在跟踪Scott Davis'tutorials开发grails应用程序,但每当我尝试运行我的应用程序(或者确实是他的源代码)时,我得到“Firefox已检测到服务器正在重定向此请求以永远无法完成的方式解决问题。“ Safari提供与Opera类似的错误消息。

由于我测试了原作者的源代码,它给出了同样的错误,我相当自信它与代码无关。

这是我机器上的Web服务器的问题吗?我使用Mac OS Snow Leopard,所以我假设它的apache产生了这个错误。

编辑:似乎Grails作为标准使用Jetty,因此可能不是导致问题的Apache。然而,还测试了Glassfish上的应用程序,我得到了同样的错误。

任何人都知道我能做些什么来解决这个问题?

干杯

3 个答案:

答案 0 :(得分:4)

这取决于您使用的代码和Apache配置。我假设Web服务器发送循环HTTP重定向,例如。从/root//root(没有斜线),反之亦然。这会导致重定向无限循环。

检查导致HTTP重定向的条件的配置。例如,Apache会自动在标准配置中向目录URL添加斜杠(如上面的/root/示例)。我不知道Grails,所以我不能给你一个关于如何在应用程序中处理URL的提示。

您还可以使用手动HTTP请求进行调试,以便在终端上使用telnet查看幕后发生的事情:

$ telnet localhost 80
GET / HTTP/1.0

我想答案会是这样的:

HTTP/1.0 302 Found
Location: XXX
...

现在对Location标题中传递的URL执行第二次请求,依此类推。

答案 1 :(得分:3)

我刚才得到了同样的错误,以下是我修复的问题:

  1. 在不同的互联网设置上尝试相同的页面(可能是您的ISP)
  2. 打开Safari,Firefox或您使用的任何内容并清空缓存并删除所有Cookie
  3. 重新启动计算机,然后重试
  4. 现在可能有用,但如果没有:

    1. 打开Firefox并在网址栏中输入“about:config”(不带引号)
    2. 您会收到一些警告,只需按确定
    3. 即可
    4. 在“过滤器”框中输入“重定向”
    5. 您应该会看到'network.http.redirection-limit'
    6. 的列表
    7. 双击列表并键入一个大数字(任何高于50且低于200的数据)
    8. 按确定,退出并重新打开FireFox
    9. 基本上所做的就是让FireFox对重定向循环的容忍度更高,这可以解决你的问题 - 但通常只是借用别人的互联网连接修复它

      希望所有帮助=)

答案 2 :(得分:2)

只需仔细检查您的URLMappings配置:

YOUR_APP /的grails-app / CONF / UrlMappings.groovy

常见情况:

您已将请求配置为如下处理:

“/ anything”(控制器:“someController”)

因此,如果没有操作,请求将默认处理,“index”。 “index”操作通常会重定向到“list”,而“list”,在某些情况下会重定向回“index”

有你的循环。

祝你好运