Javascript HTTP GET而不是随机出现的POST
自1月份以来,我们开始遇到以下问题。我们会随机收到URL上的GET请求,而这些请求只会收到POST表单提交。GET请求没有参数(即URL中看不到表单数据)。这样的请求会导致Rails路由异常(“只允许post请求”),用户会收到错误页面500Javascript HTTP GET而不是随机出现的POST,javascript,ruby-on-rails,http,Javascript,Ruby On Rails,Http,自1月份以来,我们开始遇到以下问题。我们会随机收到URL上的GET请求,而这些请求只会收到POST表单提交。GET请求没有参数(即URL中看不到表单数据)。这样的请求会导致Rails路由异常(“只允许post请求”),用户会收到错误页面500 这个问题每天发生不到一次(我们每天收到数百个POST请求) 这似乎发生在多个浏览器中(IE7、IE8、Chrome) 看起来,用表单重新加载页面解决了这个问题(我有一个已确认的案例,当不重新加载页面并没有解决它时) 我自己无法重现这个问题 请求来自真实用
- 这个问题每天发生不到一次(我们每天收到数百个POST请求)
- 这似乎发生在多个浏览器中(IE7、IE8、Chrome)李>
- 看起来,用表单重新加载页面解决了这个问题(我有一个已确认的案例,当不重新加载页面并没有解决它时)
- 我自己无法重现这个问题
- 请求来自真实用户,而不是机器人
- 表单具有
属性method=“post”
- 这个问题似乎主要以一种形式出现,但也发生在其他地方
更新:我们运行Nginx+Mongrel集群。Nginx
access.log
显示了我们观察到的GET请求,在Nginxerror.log
中没有相关条目。我在服务器上看到过类似的错误。那是大约一年多以前的事了。据我记忆所及,这是由我们的web服务器引起的。的旧版本不能很好地与Apache配合使用。乘客升级到新版本修复了问题。现在我已经切换到Nginx了
因此,无论您使用什么,都要确保您已经更新了web服务器软件。并检查web服务器日志中的错误,而不是Rails production.log 我在我的服务器上看到过类似的错误。那是大约一年多以前的事了。据我记忆所及,这是由我们的web服务器引起的。的旧版本不能很好地与Apache配合使用。乘客升级到新版本修复了问题。现在我已经切换到Nginx了
因此,无论您使用什么,都要确保您已经更新了web服务器软件。并检查web服务器日志中的错误,而不是Rails production.log 我在Chrome上检测到类似的行为,执行以下操作:
Chrome版本:32.0.1700.76 m我检测到Chrome有类似的行为,执行以下操作:
Chrome版本:32.0.1700.76 m您可以添加一个调试JS代码,以便在页面返回此500状态消息时转储页面源代码。然后,在用户同意的情况下,您可以将其上载到您的站点,并检查源代码是否确实包含
method=“post”
。您可以添加调试JS代码,以便在页面返回此500状态消息时转储页面源代码。然后,在用户同意的情况下,您可以将其上载到您的站点,并检查源文件是否确实包含method=“post”
。谢谢您的回答。我们运行Nginx+Mongrel集群。我检查了Nginx错误日志,但没有找到任何相关条目。access.log通常显示get请求。感谢您的回答。我们运行Nginx+Mongrel集群。我检查了Nginx错误日志,但没有找到任何相关条目。access.log通常显示get请求。