es una buena practica utilizar un try/catch para el JSON.parse:

```
var data, 
      err;
try {
   data = Y.JSON.parse(o.responseText);
} catch (e) {
   err = e;
}
callback(err, data);
```