好的,所以我需要在执行实际的AJAX请求之前打开一个对话框(jQuery UI),这取决于用户选择的内容,继续使用AJAX请求或者什么都不做。
不幸的是,该函数似乎提前返回并完全忽略了同步请求。我做错了什么?
以下是代码:
function saveSomeStuff(value) {
var returnvalue = this.revert;
$("#dialog").dialog({
draggable: false,
buttons: {
"OK": function() {
$(this).dialog("close");
returnvalue = $.ajax({
type: "POST",
url: config.someUrl,
async: false,
data : {/* some data */}
}).responseText;
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
return returnvalue;
}
答案 0 :(得分:2)
$.ajax({
type: "POST",
url: config.someUrl,
async: true,
data : {/* some data */},
success : function (data) { *YOUR LOGIC HERE*}
})
P.S。避免在任何地方同步请求。