emi*_*l.c 1 jquery post return
我有这个代码:
function someFunction(something1, something2) {
$.post("execute.php", { someData1: something1, someData2: something2 }, function(data) {
returnData = data;
});
return returnData;
}
Run Code Online (Sandbox Code Playgroud)
Post函数返回false或true,我希望someFunction通过返回值进一步发送此信息,但它不起作用.我猜这个返回值在它发布之前返回所以有未定义,但我不知道如何处理它.
ajax调用是异步的,这意味着它"运行".该函数被执行并立即返回,javascript以其快乐的方式继续,而ajax调用则"完全"执行.
这就是为什么它返回undefined,因为它不是.
要防止出现这种情况,您需要将其设置为"同步".您需要在函数范围之外定义returnData.
您可以通过设置来完成此操作
$.ajaxSetup({async:false});
Run Code Online (Sandbox Code Playgroud)
然后调用$ .post,
或者你可以做到 $.ajax(... {async:false}...);
所以使用第一种方法:
function someFunction(something1, something2) {
$.ajaxSetup({async:false}); //execute synchronously
var returnData = null; //define returnData outside the scope of the callback function
$.post("execute.php", { someData1: something1, someData2: something2 }, function(data) {
returnData = data;
});
$.ajaxSetup({async:true}); //return to default setting
return returnData;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4537 次 |
| 最近记录: |