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