Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вызов колбэка


Автор: futureboxlab 29.12.2011, 17:01
Хочу получить токен для авторизации в редмайне со стороннего сайта, для этого использую YQL. Получили страницу, потом ее распарсил в getAuthToken(). Вот код. Работает не так как задумано.

Почему не вызывавается коллбек function cbFunc(data) ??? 
ни таким образом
$.getJSON( yql,{}, function(data) {cbFunc(data)});  
ни так 
$.getJSON( yql,{}, cbFunc);  
?

Код

                function requestCrossDomain( site, callback ) {  
                    if ( !site ) {  
                        alert('No site was passed.');  
                        return false;  
                    }  
                    
                    var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from html where url="' + site + '"') + '&format=xml&callback=cbFunc';  
                
                    function cbFunc(data) {  
                        alert('bp');    
                        if ( data.results[0] ) {  
                            
                            data = data.results[0].replace(/<script[^>]*>[\s\S]*?<\/script>/gi, '');  
                            
                            if ( typeof callback === 'function') {  
                                callback(data);  
                            }  
                    }  
                        else throw new Error('Nothing returned from getJSON.');  
                    }  
                    
                    $.getJSON( yql,{}, function(data) {cbFunc(data)});  
                    
                };
 
                var getAuthToken = function (data) {
                    alert('1: '+data)
                    // var myRe = /authenticity_token\" type="hidden\" value="()([A-Za-z0-9\/]{44})"\/>/ig;
                    // var myArray = myRe.exec(data.results[0]);
                    // console.dir(myArray);
                }
                
                requestCrossDomain('http://site.com/login', getAuthToken);

Автор: trix 8.1.2012, 15:37
может так?
$.getJSON( yql, function(data) {cbFunc(data)});  

или так
$.getJSON( yql, cbFunc);  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)