Function 如何从具有$.ajax调用的函数返回结果
我会马上说,这似乎解决了同样的情况,但就我而言,我看不出有什么解决方案/答案。也许有人需要给我更清楚地“解释”一下 我有以下功能:Function 如何从具有$.ajax调用的函数返回结果,function,jquery,return-value,Function,Jquery,Return Value,我会马上说,这似乎解决了同样的情况,但就我而言,我看不出有什么解决方案/答案。也许有人需要给我更清楚地“解释”一下 我有以下功能: function CheckIfUrlExists(checkUrl) { var exists = ''; $.ajax({ type: 'POST', url: '../scripts/branchAdmin.php', data: {checkUrl: checkUrl}, cac
function CheckIfUrlExists(checkUrl) {
var exists = '';
$.ajax({
type: 'POST',
url: '../scripts/branchAdmin.php',
data: {checkUrl: checkUrl},
cache: false,
success: function(response) {
console.log('response: ' + response);
if (response === 'true') {
exists = 'true';
} else if (response === 'false') {
exists = 'false';
}
},
error: function(response) {
// return false and display error(s) from server
exists = 'false';
}
});
console.log('exists: ' + exists); // always displays empty string, regardless of what the php script returns
return exists;
}
我这样称呼它:
var exists = CheckIfUrlExists($tr.find('input.editUrl').val());
if (exists === 'false') {
//if (!CheckIfUrlExists($tr.find('input.editUrl').val())) {
// New URL entered, verify user want to save it
$('#confirmAddNewUrlDialog').data('row', $tr).dialog('open');
... // code to handle result
}
如何让“CheckIfUrleExist()函数返回true或false(或与此相关的任何值),以便在上述代码中使用它?将ajax调用异步选项设置为false。然后您将得到结果。 请参阅链接
答案的要点是,您不应该从这个函数返回结果。AJAX是异步的,因此函数在调用完成之前返回。您想做的任何事情都应该在回调中完成。明白了,Barmar。谢谢-功能现在可以根据需要工作了。
$.ajax({
type: 'POST',
async: false,
url: '../scripts/branchAdmin.php',
...