当您调用$.post()
时,实际上只是一个包装器$.ajax()
,您正在做两件事:1,向服务器发起一个异步请求,以及 2,为请求完成时(即收到响应时)设置事件处理程序)。
此事件处理程序的工作方式与任何其他事件处理程序非常相似,例如使用$.click()
或设置的事件处理程序$.keyDown()
。因此,$.post()
调用几乎立即完成,之后的代码继续执行。然后,一段时间后,收到响应并$.post()
触发回调(您传入的函数)。
所以你需要的是更像:
$.post('myphpcode.php', {myJSData}, function(data) {
// this is executed only when the request is complete.
// the data parameter is the result of the call to the backend.
});
// code here is executed immediately after the request is fired off
PS你一般使用“post”请求向服务器发送数据;如果您只是检索数据,则更常见的是使用“get”请求,即$.get()
代替$.post()
.