处理代码混淆后的Ajax重定向

时间:2014-04-01 16:52:44

标签: javascript php jquery ajax codeigniter

我最终设法在我的代码中实现了一个Ajax调用,但是在调用之后我有点困惑如何重定向,我的脚本示例如下所示,我正在使用CodeIgniter开发。:

<script type="text/javascript">
  function myFunction() {
    var form_data = $('#form1').serialize();
    $.ajax({
      type: "POST",
      dataType: "text",
      url: "testproject/main/test",
      data: form_data,
      success: function(response){
        window.location("http://www.google.com");
      }
    });
    window.alert("sometext");
  }
</script>
在我的test()php函数中,我可以进行重定向吗?如果不是,我如何将信息传递回JS函数进行重定向?另外作为最后一个问题,如何使用这样的查询动态加载html进入我的页面? (最后一个问题是我好奇/多管闲事)。非常感谢,请耐心等待,因为我是一个完整的新手!

编辑:我的Ajax查询执行时没有问题 - 我的代码永远不会执行:

success: function(response){
  window.location("http://www.google.com");
}

我必须以某种方式在php中返回响应吗?

2 个答案:

答案 0 :(得分:1)

关于如何在javascript中重定向的快速谷歌将revealed this。你的javascript写错了。你需要:

window.location.href = 'http://www.google.com';

至于在PHP内部重定向,不,你不能这样做。您需要将其传递回javascript才能重定向。您可以通过在PHP页面上回显您想要访问的页面,然后重定向到该页面来实现此目的。

所以在你的PHP页面上你有:

<?php echo 'myurl.html'; ?>

然后在你的Ajax中你有:

window.location.href = response

因为响应将在PHP页面上显示出任何回声。

答案 1 :(得分:0)

试试这个:

<script type="text/javascript">
    function myFunction()
    {

        var form_data = $('#form1').serialize();

         $.ajax({
             type: "POST",
             dataType: "text",
             url: "testproject/main/test",
             data: form_data,
             success: function(response){
                 window.location.href="http://www.google.com";   
                   // or window.location.assign("http://www.google.com");
             }
          })
         alert("sometext");
   }
</script>