我有两个名为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这样的错误。
任何人都可以帮助我
答案 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。 请验证您的服务器端代码,以确保数据是否已添加到您的响应中。