Ошибка ссылки на объект после успешной операции ajax - jquery - PullRequest
1 голос
/ 23 февраля 2012

В приведенном выше вызове ajax объект jData возвращает ноль .. но возвращает объект успешно, если отображается с успехом:

var jData = null;

function x() {

$.ajax({
url : 'http://...",
success : function(data) {
    jData = data;
    alert(jData);   // displays the object
}


});
 return jData;  //returns null ??
};

Ответы [ 3 ]

1 голос
/ 23 февраля 2012

Вы получаете данные из области действия вашего блока, которые по самой причине не происходят, верните свои jdata в рамках операции успеха

1 голос
/ 23 февраля 2012

$.ajax() является асинхронным. Вы должны работать с jData напрямую при успешном обратном вызове

var jData = null;

function x() {
    $.ajax({
       url : "http://...",
       success : function(data) {
          jData = data;
          alert(jData);   // displays the object
          //do stuff here
       }    
    });
}
0 голосов
/ 23 февраля 2012

Ajax является асинхронным, вам нужно вернуть jdata изнутри обратного вызова успеха.В противном случае при возврате jdata вызов ajax еще не был возвращен, и jdata не было присвоено значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...