[英]Why firefox and IE not refresh page after click button?
为什么单击按钮后,Firefox和IE无法刷新页面?
点击按钮后,它将显示“确定”。 然后刷新页面。
我在Chrome,Opera,Safari上进行了测试,还可以。 但是在Firefox和IE上无法刷新怎么办?
test_1.php
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<form id="myForm" action="test_2.php" method="post">
<button id="sub">Send</button>
</form>
<span id="result"></span>
<script type="text/javascript">
$("#sub").click( function() {
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info){ $("#result").html(info);
});
clearInput();
});
$("#myForm").submit( function() {
return false;
});
</script>
test_2.php
<?php
echo "OK.";
echo "<META HTTP-EQUIV = 'Refresh' Content = '2'>";
?>
如果使用AJAX,为什么要重新加载页面? 它完全没有必要。 在大多数浏览器中,meta标记位于头部,并非通过Ajax调用执行
在test2.php中,您可以执行
// save your data here
$status = someFunctionReturningSomeString(parameters);
header("location: test_1.php?status=$status");
然后返回test1.php,测试该状态并将其显示给用户:
<?
$status = $_GET["status"]; // perhaps some cleaning is needed too
if (isset($status)) {
echo "<script>$(function() $("#result").html('".$status."')});</script>";
} ?>
<form id="myForm" action="test_2.php" method="post">
<input type="submit" value="Send"/>
</form>
注意 :不要在标头之前回显任何内容,否则您将得到无法修改标头信息-标头已发送
如果必须重新加载,则比返回元标记更好地执行以下操作
$("#myForm").on("submit", function(e) {
e.preventDefault(); // cancel the form
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info){ $("#result").html(info);
// allow the user to see the result perhaps?
setTimeout(function() { location.reload(1)},3000);
});
clearInput();
});
因为您正在使用jQuery,您可以执行以下操作:
<script>
$(document).ready(function() {
location.reload();
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.