我想在函数中执行 AJAX 请求,然后返回请求的结果(使用 mootools)。请求和响应按我想要的方式工作,但变量仍然为 0。
这是我的功能:
function recalcPrice(baseprice, rclass, count){
var newPrice = 0;
var request = new Request.JSON({
method: 'post',
url: 'controller/xhr_request.php',
async: false, //UPDATE: that line solves the problem
data: {
'performaction' : 'calcNumberPrice',
'baseprice' : baseprice,
'class' : class,
'number' : count
},
timeout : 5000,
onComplete: function(response) {
console.log('response=' + response);
if(response.status == 'success'){
console.log('price = ' + response.price);
newPrice = response.price;
}
}
});
request.send();
return newPrice;
}
控制台显示价格计算正确,但变量newPrice
没有改变......
这个问题在 SO 中已经众所周知,但这个解决方案不应该解决吗?https://stackoverflow.com/a/5541322/1059828