1

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

主.js:

var details= getUIContent();

实用程序.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 中获得响应。它给出了未定义的错误。

谁能帮我

4

2 回答 2

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
});
于 2013-07-23T05:47:15.987 回答
0

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

于 2013-07-23T05:44:42.827 回答