Javascript 从函数内的ajax调用获取返回值
下面是我正在编写的代码。如您所见,我创建了一个名为“my_string”的变量,作为默认值,我希望调用get_result_data()函数,并在变量“my_string”上存储任何返回数据。然后,一旦用户单击Javascript 从函数内的ajax调用获取返回值,javascript,php,jquery,Javascript,Php,Jquery,下面是我正在编写的代码。如您所见,我创建了一个名为“my_string”的变量,作为默认值,我希望调用get_result_data()函数,并在变量“my_string”上存储任何返回数据。然后,一旦用户单击$(“#按钮”),我想显示存储的数据。但问题是,我总是遇到一个无法识别的错误 function get_result_data(){ $.ajax({ type: 'POST', url: 'ajax/get_result.php' }).d
$(“#按钮”)
,我想显示存储的数据。但问题是,我总是遇到一个无法识别的错误
function get_result_data(){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
return data;
});
}
var my_string = get_result_data();
$('#button').click(function(){
alert(my_string);
});
您的
get\u result\u data
函数不返回任何内容,这就是为什么返回未定义的内容。相反,请尝试在ajax回调中设置my_string
:
var my_string;
function get_result_data(){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
my_string = data;
});
}
$('#button').click(function(){
// MY_STRING MIGHT BE UNDEFINED
alert(my_string);
});
也许更好的方法是:
var response = $.ajax({
type: 'POST',
url: 'ajax/get_result.php'
});
$('#button').click(function(){
response.done(function (data) {
alert(data);
});
});
您应该使用回调方法来执行此操作
function get_result_data(callback){
$.ajax({
type: 'POST',
url: 'ajax/get_result.php'
}).done(function(data){
callback(data);
});
}
get_result_data(function(my_string){
$('#button').click(function(){
alert(my_string);
});
});
通过这种方式,工作
function get_result_data(){
var res;
$.ajax({
type: 'POST',
url: '/kuke/userBlog/getTudouVideoInf',
async:false,
data : {
"temp" : "1",
"video_id" : "111"
},
error : function(textStatus,errorThrown) {
alert("textStatus:"+textStatus+" errorThrown:"+errorThrown);
}
}).done(function(data){
res=data;
});
return res;
}
@elclanrs我也这么认为,在创建这个问题时,我会提出dup问题:(为什么需要将函数存储在my_string变量中?只需将函数放在按钮click.get_result_data()中即可)!更好这只是我整个项目的一小部分,我需要让它为特定目的工作,但是我放了返回数据;对,但是在你的
get\u result\u data
函数中没有return
语句,所以当你调用它时不会返回任何内容。那么一旦点击按钮,你将如何显示返回数据d?记住ajax调用仍然在get_result_data()函数中。遵循重复项,您的问题将得到非常详细的解释。在ajax中不返回内容,而是使用回调。@user3135626记住ajax中的第一个A代表异步。get_result_data()
发送AJAX请求,然后返回而不等待响应。.done()
函数稍后在响应到达时调用。