2

我是 jQuery AJAX 函数的新手。我想在我的用户单击按钮时将其重定向到网页。请不要告诉我将按钮定位到网页,因为我必须在 php 文件中做一些工作......我当前的代码是:-

TEST.html 文件:-

<html>
<head>
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("#div1").load("test2.php");
  });
});
</script>
</head>

<button>Get External Content</button>
<div id="div1"></div>

</html>

现在我的 test2.php 文件如下:-

<?php header("Location:http://google.com"); ?>

我是 AJAX jQuery 的初学者。所以,尽管听起来很傻,但请不要对我的帖子投反对票。由于显而易见的原因,我的代码不起作用。请帮我。提前致谢。任何帮助将不胜感激。

4

4 回答 4

1

您不能使用 AJAX 调用重定向。您可以创建一个简单的链接或链接到 PHP 页面,然后将用户重定向到该页面。使用 AJAX 只会让您操纵您所在的页面。

当然,您也可以随时使用简单的 Javascript 进行重定向。

window.location = '/my_url.php';

编辑:针对您的评论问题,我要做的是使用带有 data 参数的 .get() 函数,如果需要服务器端验证,检查从 PHP 页面返回的内容,然后如果我对结果感到满意,重定向。

如果不需要服务器端验证,则不需要 AJAX。

于 2013-07-01T17:19:50.787 回答
1

这样看:AJAX 正在请求和读取 .php 文件。当 AJAX 看到该header("Location: ...")行时,它会重定向 AJAX 请求。简而言之,AJAX 不能用于重定向。

于 2013-07-01T17:21:07.927 回答
1

在 AJAX 查询完成后,您可以使用完整的回调来重定向用户,如下所示:

$(document).ready(function(){
  $("button").click(function(){
    $("#div1").load("test2.php", 
      complete: function(){
        window.location = 'http://new_url';
      }
    );
  });
});

话虽如此,如果您只想在单击按钮时重定向用户,有更好的方法可以做到这一点。

于 2013-07-01T17:21:53.787 回答
0
$("#div1").load("test2.php");  

附加从返回的内容test2.php,它不会重定向。应该返回一个链接并用该test2.php链接填充 div。然后在ajax成功上编写一个回调,它将使用重定向window.location = target,目标是动态加载的链接div1

于 2013-07-01T17:26:21.597 回答