Есть две проблемы с кодом.
Первое, что вы заметили, это то, что переменная существует только в области действия анонимной функции, созданной вами для обработки обратного вызова.
Другая проблема состоит в том, что код, который использует переменную, выполняется до того, как переменная установлена.
Запрос на сервер отправляется, затем функция обратного вызова ожидает ответа, но код, отправляющий запрос, не ожидает ответа, поэтому он продолжит работу с кодом с использованием переменной.
Обе эти проблемы решаются путем перемещения кода, использующего переменную, в функцию обратного вызова.
В качестве альтернативы, поместите код, который использует переменную, в отдельную функцию и вызовите эту функцию из функции обратного вызова:
$.getJSON(
'http://localhost:8500/mxRestore/model/mdl_user.cfc?method=getUserData&returnFormat=json&queryformat=column',
{},
function(data) {
handleCallBack(data.ROWCOUNT > 0);
}
);
function handleCallBack(isLoggedIn) {
if (isLoggedIn) {
// Do this
} else {
alert('You are not logged in');
}
}