ajax回调函数的返回值,使用ajax和回调函数向函数传递/返回值

开发者在使用AJAX和回调函数获取函数getProductInfo返回的产品信息时遇到‘undefined’值问题,尝试在successCallback中正确声明和访问变量p_info,以解决跨作用域问题。
摘要由CSDN通过智能技术生成

我试图读p_info函数返回从函数getproductInfo包含ajax调用,但我得到未定义的值。我使用回调函数来实现这一点,但仍然无法正常工作。我错在哪里?使用ajax和回调函数向函数传递/返回值

$(document).ready(function() {

function successCallback(data)

{

var name = data.name;

var image = data.image;

var link = data.link;

var product_info = [name, image, link];

console.log(product_info); // Correct: shows my product_info array

return product_info;

}

function getProductInfo(prodId, successCallback) {

$.ajax({

type: "POST",

url: "getProductInfo.php",

data: "id=" + prodId,

dataType: "json",

success: function(data) {

var p_info = successCallback(data);

console.log(p_info); // Correct: shows my product_info array

return p_info;

},

error: function()

{

alert("Error getProductInfo()...");

}

});

return p_info; // Wrong: shows "undefined" value

}

var p_info = getProductInfo(12, successCallback);

console.log(p_info); // Wrong: shows an empty value

});

2015-02-05

KaMZaTa

+0

您在成功回调中声明'p_info',然后尝试在该范围之外访问它。相反,在函数的顶部声明它。 –

2015-02-05 22:23:18

+0

谢谢。正如我写给用户Neoaptt,我试图做到这一点,但仍然无法正常工作。 –

2015-02-06 03:33:13

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值