#javascript #ajax
#javascript #ajax
Вопрос:
Это мой код, в котором я в настоящее время показываю ответ на запрос AJAX в innerHTML
элементе, но вместо этого я хочу получить alert
результат ответа. Как я могу это сделать?
function checkforsampleAdded(){
var ajaxRequest; // The variable that makes Ajax possible!
try {
// Opera 8.0 , Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch(e) {
// Internet Explorer Browsers
try {
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4) {
var ajaxDisplay = document.getElementById('school_name');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var status = document.getElementById('teststatus').value;
var tstid = document.getElementById('tstid').value;
ajaxRequest.open("GET", "<?php echo base_url();?>Test/CheckForSampleAdded/" tstid, true);
ajaxRequest.send();
}
Комментарии:
1. Итак, измените строку, которая устанавливает значение
innerHTML
alert()
…? Также ваш вопрос не имеет ничего общего с jQuery или codeigniter, поэтому я удалил эти теги
Ответ №1:
Помимо проверки readyState, я бы рекомендовал вам также проверить статус на 200
Вот обновленный код
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4 amp;amp; ajaxRequest.status == 200) {
var ajaxDisplay = document.getElementById('school_name');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
alert(ajaxRequest.responseText); // alert the data
}
}
Комментарии:
1. спасибо, это сработало для меня. еще одна вещь, если ajaxRequest.responseTest emplty не предупреждает.