嗨我有些事情有问题
这是代码
function get_char_val(merk) {
$.ajax({
type: "POST",
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data){return(data);}
});
}
alert(get_char_val("str"));
当警报出来时它输出未定义请快速帮助我这两天xC
答案 0 :(得分:3)
get_char_val
不会返回任何内容。 success
回调需要alert(data)
来从AJAX返回数据。
$.ajax
是异步的 - 这意味着它不会与其他代码按顺序发生,这就是回调存在的原因。
答案 1 :(得分:3)
您的return;
语句会将值返回anonymous function
,然后传入success handler
。你不能返回这样的值,你需要调用另一个回调。
function get_char_val(merk, cb) {
$.ajax({
type: "POST",
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data){cb.apply(this, data);}
});
}
get_char_val("str", function(data) {
alert(data);
});
答案 2 :(得分:2)
您可以在ajax调用选项中设置async:false config参数,也可以使用回调。
使用Async:false -
function get_char_val(merk)
{
var returnValue = null;
$.ajax
(
{
type: "POST",
async:false,
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data){returnValue = data;}
}
);
return returnValue;
}
alert(get_char_val("str"));
P.S:请注意,建议不要将ajax调用设为同步。
答案 3 :(得分:0)
由于您执行了异步ajax调用,因此服务器的响应将在“success”函数中处理。成功函数的返回是无用的,您应该直接在函数
中使用“data”参数答案 4 :(得分:0)
这应该有效。像这样使用它。
function get_char_val(merk) {
var myReturnData= "";
$.ajax({
type: "POST",
url: "char_info2.php",
data: { name: merk },
dataType: "html",
success: function(data){myReturnData = data;}
});
return myReturnData;
}
alert(get_char_val("str"));
只需了解您的代码问题即可。使用右侧函数下的return语句。