¿Tenemos que adivinar el valor de "data" que recibes?
Porque eso ya sería tema de Javascript, ¿cómo estás depurando la respuesta? ¿ya revisaste la documentación de Angular al respecto?
Porque vamos, problema de PHP no es, envías datos JSON de forma correcta (aunque te hace falta un header("Content-Type: application/json")) y ahí no hay error alguno (salvo la omisión del header).