Вы пытаетесь получить доступ к ответу JSON до завершения запроса ajax. вам нужно подождать, пока ajax не завершится sh, прежде чем вы сможете его использовать. Это можно сделать двумя способами:
Как уже упоминалось в robinvrd, используйте функции success и error:
function isUnique(inputObject) {
let type = $(inputObject).attr('id');
let res = $.ajax({
url: '/dbajax.php',
method: 'POST',
data: {[type]: $(inputObject).val()},
dataType: 'JSON',
success: function(data) {
console.log(data.success); //this will fire when the ajax request is finished and return the data
},
error: function(data) {
console.error(data); //this will tell you of any errors after the request has been made
}
})
return res;
}
или используйте обратные вызовы для объекта запроса:
function isUnique(inputObject) {
let type = $(inputObject).attr('id');
let res = $.ajax({
url: '/dbajax.php',
method: 'POST',
data: {[type]: $(inputObject).val()},
dataType: 'JSON'
})
res.done(function(result) {
console.log(res.responseJSON.success);
});
res.fail(function( jqXHR, textStatus) {
console.error("Request failed: " + textStatus);
});
return res;
}