我正在跟踪Scott Davis'tutorials开发grails应用程序,但每当我尝试运行我的应用程序(或者确实是他的源代码)时,我得到“Firefox已检测到服务器正在重定向此请求以永远无法完成的方式解决问题。“ Safari提供与Opera类似的错误消息。
由于我测试了原作者的源代码,它给出了同样的错误,我相当自信它与代码无关。
这是我机器上的Web服务器的问题吗?我使用Mac OS Snow Leopard,所以我假设它的apache产生了这个错误。
编辑:似乎Grails作为标准使用Jetty,因此可能不是导致问题的Apache。然而,还测试了Glassfish上的应用程序,我得到了同样的错误。
任何人都知道我能做些什么来解决这个问题?
干杯
答案 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)
我刚才得到了同样的错误,以下是我修复的问题:
现在可能有用,但如果没有:
基本上所做的就是让FireFox对重定向循环的容忍度更高,这可以解决你的问题 - 但通常只是借用别人的互联网连接修复它
希望所有帮助=)
答案 2 :(得分:2)
只需仔细检查您的URLMappings配置:
YOUR_APP /的grails-app / CONF / UrlMappings.groovy
常见情况:
您已将请求配置为如下处理:
“/ anything”(控制器:“someController”)
因此,如果没有操作,请求将默认处理,“index”。 “index”操作通常会重定向到“list”,而“list”,在某些情况下会重定向回“index”
有你的循环。
祝你好运