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

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

新手,求指点。

阅读 8.1k
11 个回答

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

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

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

找到办法,,

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

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

定义一个全局变量,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);
})

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

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

javascriptvar callback=function(res){
    //回调
};
$.post(action,data).done(function(res){
  callback(res);
});
  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 
   });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题