代码之家  ›  专栏  ›  技术社区  ›  aWebDeveloper

PHP-Ajax和重定向

  •  1
  • aWebDeveloper  · 技术社区  · 14 年前

    我知道如何在javascript中实现它(即如果session_失败,那么更改window.location,但是在php/cakephp中有什么我可以做的吗

    3 回复  |  直到 14 年前
        1
  •  4
  •   Nev Stokes    14 年前

    如果我明白你想要发生什么,那么这就是我实现它的方式。它在Prototype中,而不是jQuery中,但不需要很长时间就可以翻译:

    new Ajax.Request('process.php', {
        on401: function(response) {
            var redirect = response.getHeader('Location');
            document.location = redirect;
        }
    });
    

    在PHP中,如果会话处于非活动状态,则输出以下内容:

    header('Location: http://example.com/login.php', true, 401);
    exit;
    
        2
  •  6
  •   Quentin    14 年前

    HTTP不提供任何方式来表示“即使您请求了一个资源进入一个页面,您也应该离开该页面,然后转到其他地方”。

        3
  •  2
  •   suspectus    6 年前

    如果这是一个常规请求,而不是AJAX,那么这就是您在php中想要的

    if (isset($_SESSION)) doSomething();  
    else header("Location: otherUrl");
    

    因为这是一个Ajax调用,所以您不是将控制权传递给php,而是试图获得一个(可能)填充页面特定部分的响应。您没有提到您使用的jQuery ajax函数,但它很重要。我可以想象您使用的是$.get()或$(element).load()??

    $.get(url, callbackFunc);

    菲律宾比索:

    if(isset($_SESSION)) echoSomething()   else echo("redirect");
    

    function(data)
    { if (data == "redirect") window.location = otherUrl;
       else 
       $("#desiredElement").html(data);
    }