Ciao, provando in locale questo
codice:
var xhr = new XMLHttpRequest();
var method = "GET";
var url = "http:....../?notifica=1";    
xhr.open(method, url, true);
xhr.onreadystatechange = function (){ // non entra qui dentro
	console.log(xhr.status,xhr.readyState)
        if(xhr.readyState === 4 && xhr.status === 200){
        var oggetto = JSON.parse(xhr.responseText);		
        console.log(oggetto)	
    }
}


xhr.send();
e avendo nel mio php solo
codice:
echo json_encode(array(1,2));
funziona correttamente. In oggetto vedo loggare il mio array/obj .

Non è che lato php oltre a mandare l'echo di questo mandi altro? o se lo script stesso oltre a mandare questo renderizza qualcosa?
Anche se non lo vedi via JS potrebbe dar fastidio. Nella risposta devi avere solo quello.
Nel mio caso d'esempio ho messo in testa a tutto (dato che la pagina è una pagina html completa)
codice:
if($_GET['notifica']){
	echo json_encode(array(1,3)); die;
}