这是我的代码的骨架。
<?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值最初传递。有人可以指导我这里有什么问题吗?
谢谢。
答案 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调用时没有重新加载。
再次感谢您的所有努力。