Javascript 想知道firefox中html表单的行为吗?

Javascript 想知道firefox中html表单的行为吗?,javascript,Javascript,我只在firefox中遇到了一个问题: 我正在使用自己的方法生成查询字符串,其形式如下 <form name="mytestform" action="/submit.do"> <input name="hiddenID" value="12345" type="hidden" > </form> 每次hiddenID值在每个请求中更改时,都会通过ajax调用此页面 当我使用getFormData(mytestform)获取表单数据时,它返回第一

我只在firefox中遇到了一个问题:

我正在使用自己的方法生成查询字符串,其形式如下

<form name="mytestform" action="/submit.do">
   <input name="hiddenID" value="12345" type="hidden" > 
</form>

每次hiddenID值在每个请求中更改时,都会通过ajax调用此页面

当我使用getFormData(mytestform)获取表单数据时,它返回第一个访问的表单值(即我获取值的所有时间hiddenId=12345

如果我使用了getFormData(document.mytestform)它工作正常

当我使用ajax时,我不确定表单对象是否缓存在firefox中


请解释一下它背后的逻辑是什么?

发送表单数据的默认方法是GET。这样可以缓存响应。如果不希望出现这种行为,请使用POST方法。

浏览器有两个版本的页面。加载时的原始外观以及执行所有javascript后的当前版本。如果您查看页面的源代码,您将获得原始代码


我猜这里也发生了同样的事情。通过使用document.mytestform,您可以访问页面的当前版本。

整个响应将被缓存,除非您在响应上指定Expires:-1作为标题或更改查询字符串,即使使用AJAX也是如此。 一个快速的解决方案是将new Date()作为额外参数附加到eh AJAX请求中 e、 g


还有更优雅的解决方案,但这应该足以证明缓存是您的问题

Hi,在发送请求之前,当我使用firebug控制台getFormData(mytestform)检查时,返回“hiddenId=12345”,getFormData(document.mytestform)返回新更改的值。是,我在使用document.mytestform时获取当前表单对象。在google chrome document.mytestform和mytestform中,返回当前表单对象。有没有什么具体的原因,为什么只有在firefox中才会出现这种情况?因为他们告诉过他;)不,对不起,我无法解释为什么firefox会这样。你有关于这方面的参考链接吗?看看
$.GET("myURL/myForm.jsp?nocache="+new Date());