Проблема в том, что метод успеха вызывается асинхронно, то есть после того, как вы вызвали $ (). Ajax и пытаетесь сослаться на переменную, она еще не была назначена, так как методы обратного вызова успеха не были выполнены.
Эту проблему можно решить, установив для параметра async значение false, например:
$.ajax(
{
/* this option */
async: false,
cache: false,
type: "GET",
dataType: "text",
url: url,
...
Это означает, что после вызова ajax больше ничего не будет выполняться, пока вы не получите свой ответ. Альтернативой этому является размещение кода, где вам нужно использовать массив IN самого метода обратного вызова.