hi,
ich kann nirgendwo die für einen POST notwendigen Header in Deinem Code sehen, diese sind (zwischen open und send):
xhr.open("POST", hash.url, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", hash.params.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(hash.params);
Hotti