为了重用,我在一个单独的函数中取出了 ajax 请求:
function getProducts(a,b) {
$.ajax({
type: "POST",
url: url,
data: {cat: a, subcat: b},
success: function(data) {
return data;
},
async: false
});
}
var list = getProducts(10,20);
console.log(list); // undefined
函数调用会产生undefined
,即使data
函数内部已定义。据我了解,问题是异步的,尽管它已明确说明async: false
。
请您告诉我如何正确使用外部函数形式的ajax请求。
请求是同步执行的,这是不好的做法,在这种情况下完全没用。在您的情况下,未定义返回的不是 jquery ajax 请求,而是一个无需等待来自服务器的内容即可工作的函数。
作为解决方案,您可以将其传递给 getProducts 函数,添加。参数,一个处理程序,将在服务器响应时调用并使用接收到的数据执行操作。