为什么firefox和IE点击按钮后没有刷新页面?

时间:2014-01-21 14:09:36

标签: javascript php refresh

为什么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'>";
?>

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>