在JQuery中发布表单并在IE中填充DIV-break
我试图创建一个表单,通过jQuery发布数据并将返回填充到同一个DIV中。这样,页面不会在发布操作时刷新在JQuery中发布表单并在IE中填充DIV-break,jquery,ajax,forms,Jquery,Ajax,Forms,我试图创建一个表单,通过jQuery发布数据并将返回填充到同一个DIV中。这样,页面不会在发布操作时刷新 <div id="add_value_form"> <form method="POST" action="#" onsubmit='return false'> <!-- input fields --> <input type="submit" value="Add" onclick='post_form("/add_value");'
<div id="add_value_form">
<form method="POST" action="#" onsubmit='return false'>
<!-- input fields -->
<input type="submit" value="Add" onclick='post_form("/add_value");'>
</form>
</div>
这在FF3中非常有效,但是在IE6/7中它只能随机工作
服务器确认post请求来自IE,但它只能偶尔获得post数据
出于好奇,我决定提醒数据变量:
$.post(url, {'test':'test'}, function(data) {alert(data);}, "text");
当然,FF3每次都会打印返回的HTML,而IE6/7则主要打印空白,偶尔会返回HTML。我在这个问题上找不到任何东西,那么我做错了什么
已解决:我跟踪到请求处理代码中的HTTP重定向。因此,处理POST请求的函数将抛出重定向,IE不喜欢它。当时我有一个完全的精神便秘,我真的不需要重定向
当然,奇怪的是,这在FF中起作用,IE有时也会起作用,因为重定向已经就位 我想说,在这个场景中,您根本不必使用表单标记
<div id="add_value_form">
<!-- input fields -->
<input type="button" value="Add" onclick='post_form("/add_value");' />
</div>
Update由于这仍然会导致问题,我将使用$.ajax
方法执行一些测试。此外,我不相信POST调用会被缓存,但为了以防万一,请尝试将缓存设置为false。另一个测试是以已经编码的方式传递数据,以确保没有序列化问题。如果您仍然有问题,您可以尝试将数据类型设置为文本
$.ajax({
url: '/add_value',
type: 'POST',
cache: false,
data: 'test=testValue',
dataType: 'text',
complete: function(xhr, textStatus) {
alert('completed');
},
success: function(data) {
alert(data);
},
error: function(xhr, textStatus, errorThrown) {
alert('woops');
}
});
我想说的是,在这个场景中,您根本不必使用form标记
<div id="add_value_form">
<!-- input fields -->
<input type="button" value="Add" onclick='post_form("/add_value");' />
</div>
Update由于这仍然会导致问题,我将使用$.ajax
方法执行一些测试。此外,我不相信POST调用会被缓存,但为了以防万一,请尝试将缓存设置为false。另一个测试是以已经编码的方式传递数据,以确保没有序列化问题。如果您仍然有问题,您可以尝试将数据类型设置为文本
$.ajax({
url: '/add_value',
type: 'POST',
cache: false,
data: 'test=testValue',
dataType: 'text',
complete: function(xhr, textStatus) {
alert('completed');
},
success: function(data) {
alert(data);
},
error: function(xhr, textStatus, errorThrown) {
alert('woops');
}
});
事实上,我仍然从IE中获得了随机行为:(谢谢!事实上,我已经尝试用.ajax来解决这个问题了。到目前为止,我在两种浏览器中都得到了模糊的“错误”返回,这让我无比高兴,但这非常有帮助。事实上,我仍然从IE中获得了随机行为:(谢谢!事实上,我已经在尝试用.ajax解决这个问题了。到目前为止,我在这两种浏览器中都得到了模糊的“错误”返回,这让我感到无比高兴,但这非常有用。
$.ajax({
url: '/add_value',
type: 'POST',
cache: false,
data: 'test=testValue',
dataType: 'text',
complete: function(xhr, textStatus) {
alert('completed');
},
success: function(data) {
alert(data);
},
error: function(xhr, textStatus, errorThrown) {
alert('woops');
}
});