AJAX Ready State застрял на 1
Привет, я могу видеть, что это обсуждалось, но после изучения вопросов / ответов я все еще не могу заставить даже этот простой AJAX-вызов выйти из состояния готовности 1.
Вот мой Javascript:
<script language="javascript" type="text/javascript">
var request;
function createRequest()
{
try
{
request = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
request = false;
}
}
}
if (!request)
alert("Error initializing XMLHttpRequest!");
}
function loadClassesBySchool()
{
//get require web form pieces for this call
createRequest(); // function to get xmlhttp object
var schoolId = getDDLSelectionValue("ddlSchools");
var grade = getDDLSelectionValue("ddlGrades");
var url = "courses.php?grades=" + escape(grade) + "&schoolId=" + escape(schoolId);
//open server connection
request.open("GET", url, true);
//Setup callback function for server response
//+++read on overflow that some fixed the issue with an onload event this simply had
//+++the handle spitback 2 readystate = 1 alerts
request.onload = updateCourses();
request.onreadystatechanged = updateCourses();
//send the result
request.send();
}
function updateCourses()
{
alert('ready state changed' + request.readyState);
}
function getDDLSelectionValue(ddlID)
{
return document.getElementById(ddlID).options[document.getElementById(ddlID).selectedIndex].value;
}
</script>
PHP ЗДЕСЬ - просто простая печать, которая, если я перехожу в браузер (IE/Chrome), загружается нормально:
<?php
print "test";
?>
Я довольно новичок в этом, но мне кажется, что я не могу заставить работать самые голые вызовы AJAX, любая помощь в том, как проделать эту работу, будет принята с благодарностью.
Все, что я получаю из своей функции обратного вызова 'updateCourses', это 1...
1 ответ
Ну, после еще большего количества копаний, я фактически сдался и переключился на jQuery, который для всех намерений и задач должен выполнять ТОЧНО одну и ту же вещь, за исключением того факта, что jQuery работает... Мне просто было менее комфортно с этим, но так и будет.
Вот jQuery для достижения того же:
function loadCoursesBySchool(){
var grades = getDDLSelectionValue("ddlGrades");
var schoolId = getDDLSelectionValue("ddlSchools");
jQuery.ajax({
url: "courses.php?grades=" + grades + "&schoolId=" + schoolId,
success: function (data) {
courseDisplay(data);
}
});
}
function courseDisplay(response)
{
//check if anything was setn back!?
if(!response)
{
$("#ddlCourses").html("");
//do nothing?
}
else
{
//empty DLL
$("#ddlCourses").html("");
//add entries
$(response).appendTo("#ddlCourses");
}
}