如何获取ajax返回的结果

KsonJsy 2013-10-09 09:09:16
 function Getdata(productId, sku) {//得到请求数据方法
//alert(sku);
var str = "";
$.ajax({
type: "GET",
url: "../Ajax/GetSkus.aspx?productId=" + productId + "&sku=" + sku,
contentType: "application/text; charset=utf-8",
dataType: "text",
success: function (returnMsg) {
returnMsg = returnMsg.split('|');
//alert(returnMsg.length);
str += returnMsg[0] + "|" + returnMsg[1];//这里是有结果的
//alert(str);
},
error: function (err) {
alert("ajax错误码:" + err.status);
}
});
alert(str);//为什么这里返回的是空
return str;
}


  function CreateTable3(arr, label) {
var str=Getdata(productId, sku);
alert(str);//我想在这里调用ajax返回的结果,为什么是空的呢?
}
...全文
8220 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KsonJsy 2013-10-09
  • 打赏
  • 举报
回复
确实是这样,呼呼,解决了
KsonJsy 2013-10-09
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
因为 ajax 是异步传输的
刚找到了那个帖子, 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: function ManageCommentText(text) { var result = text; $.ajax({ data: "get", url: "GetComments.aspx", data: "type=getText&commentText=" + text, cache: false, async: false, success: function (data) { result = data; } }) return result; 以上方法是ajax的同步调用,只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true, 则会未等到获取data值就已经返回了result。 另一个解决办法就是将你的代码直接写到success方法里。(根据你的业务并不是所有的都可以直接写到success里的)。 我先试试再说,
xuzuning 2013-10-09
  • 打赏
  • 举报
回复
因为 ajax 是异步传输的

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧