Я решил свою проблему.Я никогда не мог получить подтверждение успешного запроса AJAX, даже если данные размещены просто отлично.Поэтому я разработал обходной путь: если данные POST просто в порядке, то все, что мне нужно сделать, это перенаправить страницу после задержки (чтобы дать время для публикации данных).
Итак, моя кнопка отправки выполняет двафункции:
onclick="saveData(); redirect()"
Затем AJAX-запрос выполняется нормально:
$.ajax({
type: "POST",
url: "saveData.php",
dataType: "text/plain",
ContentType: "charset=utf-8",
data: {"data": surveydata, "userID": userID, "trialType": trialType},
})
И в то же время я запускаю таймер для перенаправления страницы:
function redirect(){
document.getElementById("submitBtn").disabled = true;
document.getElementById("submitBtn").value = "Redirecting...";
setTimeout(function(){ window.location.replace("anotherpage.html"); }, 3000);
}
Это делает так, чтобы через 3 секунды страница перенаправлялась, давая функции AJAX время для публикации данных в первую очередь.Это не идеальное решение, потому что сервер может зависнуть и данные могут быть потеряны, но пока мои тесты показывают, что времени достаточно.Если бы я действительно хотел быть осторожным, я мог бы увеличить это время, но я не считаю это необходимым.
Я также хотел бы сказать, что я благодарен за комментарии, которые должны были помочь.Я думаю, что много раз, если вопрос похож на SO, люди игнорируют его, потому что «ясно, что на этот вопрос уже был дан ответ».Но ни одно из этих решений не помогло мне, и я думаю, что моя проблема была уникальной.