Aika ajoin tulee tarve edelleenohjata ajaxilla tehtyjä kutsuja jonnekin muualle. Esimerkiksi, kun käyttäjä lähettää kommentin ajaxilla ja käyttäjän sessio on päässyt kuolemaan, tai tapahtuu jotain muuta odottamatonta, niin käyttäjä ohjataan etusivulle.
Ongelmana aiemmin on ollut se, että ajax-kutsu tapahtuu taustalla eikä sen varsinaisen http-kutsun redirraaminen toiseen paikkaan auta mitään, kun käyttäjän selaimessa oleva sivu säilyy paikallaan. Vielä ongelmallisempi tilanne on Ajax.Updater -kutsujen kanssa, kun saattaa käydä vaikka niin, että kommenttilaatikon tilalle ilmestyy etusivu.
Tutkailin tuossa hetken aikaa prototypen ajax-toteutusta, ja löysin sieltä Ajax.Responders-olion, jonka avulla sai helpon ratkaisun ongelmaan. Nyt käytössä onkin tällainen patchays:
  Ajax.Responders.register({
      onComplete: function(request, json) {
          if (json && json.headerJSON && json.headerJSON.redir) {
              document.location.href = json.headerJSON.redir;
          }
      }
  });
Eli PHP:n puolella voidaan nyt redirrailla käyttäjä ajax-kutsuistakin vaikka sinne etusivulle:
  function redir($to) {
      if ($_SERVER == 'XMLHttpRequest') {
          // Use JSON for ajax redirs
          header('X-JSON: ' . json_encode(array('redir' => $to));
      } else {
          header('Location: ' . $to);
      }
      exit;
  }
Win \o/