AJAX调用PHP文件重新加载页面,但理论上是正确的吗?

时间:2016-07-01 07:51:39

标签: javascript php ajax

这是我的代码的骨架。

<?php

if(!isset(get)){
   header("Location: newPage");
} else {
   echo "data";
}

<body>
   <button onclick="callAjax(a,b)"></button>
</body>
<script>
function callAjax(a,b) {

   $.ajax( url:'pagea.php',type:'',data:'',success: function(){alert('success')})

}
</script>

此页面由另一个带有get参数的页面调用,因此,如果没有get值,它将被重定向到“newPage”。 此页面中的一个按钮应该调用一个javascript函数onclick。该函数执行ajax调用,我也获得了“成功”消息框。但在那之后,页面被重定向到“newPage”。我的理解是,在ajax-call之后,控件应该返回到按钮,在该按钮中调用函数而不重新加载此页面。但由于缺少get参数,看起来这个页面被重新加载并路由到“newPage”。

我希望在函数callAjax完成后看到相同的页面,其中get值最初传递。有人可以指导我这里有什么问题吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

首先,这段代码存在缺陷。特别是isset(get),缺少关闭<?php等等。

此代码不应按原样运行。即使它确实如此,在这种情况下,AJAX调用应该重新加载页面。

如果您能提供完整的源代码,那将会有所帮助。

我写了这段代码试图重现你的问题:

<?php

if(!isset($_GET['test'])){
   header("Location: newPage.php");
} else {
   echo "data";
}
?>

<body>
   <button type="button" onclick="callAjax(1,2)">Click me</button>
</body>
<script   src="https://code.jquery.com/jquery-3.0.0.min.js"   integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0="   crossorigin="anonymous"></script>
<script>
function callAjax(a,b) {

   $.ajax({
      url: 'get.php',
      data: {},
      success: function () { alert('success'); }
   })

}
</script>

当我在URL中没有提供test参数时,我被重定向,但是在点击按钮时却没有,即使警报出现也是如此。

答案 1 :(得分:0)

感谢您花时间分析此代码。错误与标记有关,因为浏览器将其视为提交操作并重新加载页面。当它被<input type=button>替换时,错误已解决,因此在ajax调用时没有重新加载。

再次感谢您的所有努力。