为什么firefox和IE在点击按钮后没有刷新页面?
点击按钮后,会显示“OK”。然后刷新页面。
我测试了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'>";
?>
答案 0 :(得分:0)
如果您使用AJAX,为什么要重新加载页面?它完全违背了需要。元标记位于头部,并且不会在大多数浏览器中从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();
});
答案 1 :(得分:-3)
因为你正在使用jQuery,你可以这样做:
<script>
$(document).ready(function() {
location.reload();
});
</script>