首页 > 怎么样才能吧ajax执行成功后的data传到外部去?求高人指点!

怎么样才能吧ajax执行成功后的data传到外部去?求高人指点!

js$.ajax({
    url:"./index.php",
    data:{m:"getLineNum"},
    type:"get",
    async:true,
    success:function(data)
    {
       //就是这里的data,传到$.ajax函数的外面
    }
});
//比如传到这个位置

新手,求指点。


  1. 首先你要清楚$.ajax()方法是否有返回值,返回值是什么?
jsvar promise;
promise = $.ajax({
    url:"./index.php",
    data:{m:"getLineNum"},
    type:"get"
});
其实看过源码的都知道,其实内部处理使用的Deffered对象,
返回的应该是‘精简’的Promise。

2. 使用promise即可链式的处理回调

jspromise.done(function(data){
    //resolve
    //这个data 就是你想要的
});

或者

js   promise.then(function(data){
       //同理
       //resolve
   },function(error){
        //reject 
   });

promise的写法也是在另一个函数里。
定义一个全局变量,success里把data赋值给这个全局变量,然后改成同步请求,async:false


Js 函数内部可以访问到外部的变量


定义一个全局变量,ajax获取之后赋值给它就行了


找到办法,,

$.ajax(
{
url:"./index.php",
data:{m:"getLineNum"},
type:"get",
async:true
}).done(function(msg)
{
RECORD.id = msg;
alert(RECORD.id);
});
}


这是个异步请求,正常情况下外部是无法获取到的,只能是在请求完成,在回调函数即success里赋值


有逻辑处理的话。你可以通过把ajax封装成函数,然后以回调的方式处理其它逻辑


你找个外部的变量保存就行了


phpfunction test(func){
$.ajax(
{
url:"./index.php",
data:{m:"getLineNum"},
type:"get",
async:true,
success:function(data)
{
func(data);
}
});
}
test(function(data){
console.log(data);
})

javascriptvar callback=function(res){
    //回调
};
$.post(action,data).done(function(res){
  callback(res);
});

$.ajax({
success: function(data){
foo(data)
}
})
function foo(data){
alert(data)
}

【热门文章】
【热门文章】