我们在我正在维护的GWT应用程序中发现了一个奇怪的新错误,我不确定它何时成为问题。可能有一个新的Firefox版本。
我们正在使用FormPanel向服务器发送POST请求,基本上就像我在网上看到的许多示例一样。但由于我们实际上想要一个PUT请求,其中一个隐藏的输入参数被命名为“method”,其值为“put”。
现在,当我查看来自Firefox的Fiddler中的请求时,它将被转换为带有QueryString中所有参数的GET请求。在IE和Chrome中,参数位于POST请求的正文中。
我在警告中显示了FormPanel.getMethod()的值,在IE和Chrome中显示了字符串“post”,而在firefox中则显示“object HTMLInputElement”。遗憾的是,托管模式调试不适用于此项目。
显然看起来FormPanel的getMethod()函数返回名为method的隐藏输入参数,而不是Firefox中的实际表单方法。
从技术上讲,我应该避免更改servlet,因为这是来自我们使用的OpenSource项目,虽然我发现我可以通过在两端将隐藏的输入参数的名称更改为“_method”来解决问题。
有没有人见过这样的东西?我在谷歌找不到任何东西。
更新:我们正在使用GWT 2.3,以帮助