我的JavaScript中有一个“保存”功能,负责在我的服务器上保存一些信息。此函数将连续多次调用。我担心比赛条件的形成。出于这个原因,我希望有一种方法可以将状态变量从我的调用函数(保存)传递给我的请求 - 响应函数(save_Succeeded)。这样,我一定会知道哪个项目已成功保存。反正有没有这样做?目前,我有以下内容,但我不知道如何传递状态变量。谢谢!
function save(item) {
$.ajax({
url: getUrl(),
type: "POST",
data: JSON.stringify(item),
contentType: "application/json",
success: save_Succeeded
});
}
function save_Succeeded(result) {
alert("Display Saved Item ID here");
}
答案 0 :(得分:0)
当然,这非常重要。以下是我的一个AJAX调用示例:
$.ajax({
url: "/phpAJAX/save_data.php",
type: "post",
data : querystring + "&schema=" + schema + "&table=" + table,
success: function(data){
if (data != "Data saved successfully."){
show_dialog(data);
}else{
show_dialog(data,"bad");
}
}
});
如果你这样做
success: function(data)
data
变量将包含服务器响应中返回的数据。您可以控制服务器响应以获得成功或失败。你看到这里,我检查确保数据是“数据保存成功。”,如果不是我知道有错误,我显示该错误信息。
在您的情况下,您必须更改服务器代码以返回已保存数据的ID(如果成功),然后它将包含在data
变量中。
答案 1 :(得分:0)
使用complete
选项也可以获得ajax调用的状态。像这样:
function save(item) {
$.ajax({
url: getUrl(),
type: "POST",
data: JSON.stringify(item),
contentType: "application/json",
complete : function(xhr, responseText, thrownError) {
//request is complete
save_Succeeded(xhr.status, responseText);
}
});
}
现在save_Succeeded()
就像:
function save_Succeeded(status, result) {
alert("Status ---------> " + status +
"Result ---------> " + result
);
}