Ajax调用返回undefined

时间:2013-07-23 05:37:56

标签: ajax jquery

我有两个名为main.js和utility.js的js文件。我从main.js调用ajax,我想在main.js中使用json。

Main.js:

var details= getUIContent();

Utility.js:

    function getUIContent(){  
        $.ajax({
           type: "POST",
           url: "http://abc.com/portal",
           async: false,
           success: function(message){              
               channels = message.data.length; 
                   alert('the channel length'+channels);            
               return message;
           } 
         });
}

我在utility.js中收到响应。问题是我无法在main.js中获得响应。它给出了像undefined这样的错误。

任何人都可以帮助我

2 个答案:

答案 0 :(得分:4)

正如我所说,你无法从像ajax()这样的异步方法返回值。

这里的解决方案是使用回调方法

function getUIContent(callback){  
    $.ajax({
        type: "POST",
        url: "http://abc.com/portal",
        async: false,
        success: function(message){              
            channels = message.data.length; 
            alert('the channel length'+channels);            
            callback(message);
        } 
    });
}

getUIContent(function(details){
    //do whatever you want to do with details here
});

或者从方法中返回一个承诺

function getUIContent(){  
    return $.ajax({
        type: "POST",
        url: "http://abc.com/portal",
        async: false,
        success: function(message){              
            channels = message.data.length; 
            alert('the channel length'+channels);            
        } 
    });
}

getUIContent.done(function(details){
    //do whatever you want to do with details here
});

答案 1 :(得分:0)

似乎没有从服务器返回message.data。 请验证您的服务器端代码,以确保数据是否已添加到您的响应中。

相关问题