isNickTaken=req.responseText;
alert(req.responseText;);
// поставьте alert() чтобы увидеть, что возвращается в ответе на запрос
// переменная isNickTaken у Вас объявлена как глобальная
// и ее могут испортить другие запросы - поставьте var перед isNickTaken
// поставьте проверку статуса и пути
alert(req.status + ' - ' + URL);
if (req.status != 200)
{
...
}
А вообще странная логика... Зачем посылать запрос по заранее неверному адресу, чтобы получить ошибку и затем отправить запрос уже по верному адресу??