El problema radica en lo siguiente:
Las redirecciones en php sólo funcionan cuando no se ha mandado nada a pantalla, por ejemplo, imagina un link enviado por email para confirmar un registro:
www.miweb.com/confirma.php?id=9849849
Código PHP:
Ver original<?php
//....proceso de confirmacion y validado
if($registro=='valido')
header("Location: index.php");//redirecciono al usuario al indice, sin haber enviado nada a pantalla previamente else
echo "Mensaje de error";
Tu petición ajax se hace cuando la página ya tiene contenido, por tanto la redirección desde php ya no funciona.
Además, no puedes devolver con php un código javascript que se ejecute en automático, lo que devuelvas debe ser previamente interpretado por javascript (cliente)
Entonces, desde php debes devolver o bien un código javacript para que tu procesador de la respuesta ajax la ejecute, o bien, si sabes que php no devolverá más que una url o un error, podrías en tu lado del javascript tener una función que si no tienes error redirija hacia ahí.
Código Javascript
:
Ver originalif(respuesta!='0')
location.href=respuesta;
else
alert('Mensaje de error');