AJAX Ready State застрял на 1 - PullRequest
       26

AJAX Ready State застрял на 1

0 голосов
/ 06 октября 2011

Привет, я вижу, что это обсуждалось, но после изучения вопросов / ответов у меня все еще не получается получить даже этот простой 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 Ответ

0 голосов
/ 07 октября 2011

Ну, после еще большего количества копаний, я фактически сдался и переключился на 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");
    }       
}
...