日期:2014-05-16  浏览次数:20788 次

ajax 同步 和返回参数的问题

function getrecommendImg2(img) {
???
???
??? $.ajax({
??????? type: "GET",??????????? //http请求方式
??????? url: "../common/pic.php?figureid=" + img + "&picprop=3",??? //服务器段url地址
//??????? data: "username=" + username,?????????? //发送给服务器段的数据
??????? dataType: "json", //告诉JQuery返回的数据格式
??????? success: callback, //定义交互完成,并且服务器正确返回数据时调用的回调函数
??????? async: false
??? });
}

function? callback(data){
??? var paths = "";
??? paths = data.path;
//??? alert(paths);
//??? return paths;
??? return "a";
}

?

此时调用getrecommendImg2 则返回的参数为空,因为返回参数的语句写在回调函数中

getrecommendImg2并没有返回参数

?

?

解决办法

?

function getrecommendImg2(img) {
???
??? ?paths="";
??? $.ajax({
??????? type: "GET",??????????? //http请求方式
??????? url: "../common/pic.php?figureid=" + img + "&picprop=3",??? //服务器段url地址
//??????? data: "username=" + username,?????????? //发送给服务器段的数据
??????? dataType: "json", //告诉JQuery返回的数据格式
??????? success: function(data){
??? ??? paths = data.path;
??? }, //定义交互完成,并且服务器正确返回数据时调用的回调函数
??????? async: false
??? });
??? return paths;
}

?

把paths声明为全局变量,在回调函数中为它赋值

?

?