Onreadystatechange Ajax возвращает необработанную ошибку типа - PullRequest
0 голосов
/ 27 апреля 2018

Я новичок в ajax и пытаюсь создать простую веб-страницу ajax, но я сталкиваюсь с этой проблемой

Uncaught TypeError: Невозможно установить свойство 'onreadystatechange' из не определено в window.onload (test.js: 4)

И это код страницы test.js, который я создал

window.onload = function(){
'use strict';
var ajax = getXMLHttpRequestObject();
ajax.onreadystatechange = function(){
if(ajax.readyState == 4){
if((ajax.status >= 200 && ajax.status < 300) || (ajax.status == 304)){
document.getElementById('output').innerHTML = ajax.responseText;
}else{
document.getElementById('output').innerHTML = 'Error ' + ajax.statusText;
}
}
};
document.getElementById('btn').onclick = function(){
ajax.open('GET', 'resources/test.txt', true);
ajax.send(null);
};
}
function getXMLHttpRequestObject(){
var ajax = null;
if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}else if(window.ActiveXObject){
ajax = new ActiveXObject('MSXML2.XMLHTTP.3.0');
} 
}

пока это html-страница с именем test.html

 <!DOCTYPE html>
 <html>
     <head>
         <title>Ajax test</title>
     </head>
     <body>
         <div><button type="button" id="btn">Run the test</button><br>
             <p id="output"></p>
         </div>
         <script src ="js/test.js"></script>
     </body>
 </html>

Тем временем я пытаюсь запустить его на XAMPP

1 Ответ

0 голосов
/ 27 апреля 2018

Я только что вернул переменную ajax в конце обеих функций.

>

 window.onload = function(){
>          'use strict';
>          var ajax = getXMLHttpRequestObject();
>          ajax.onreadystatechange = function(){
>              if(ajax.readyState == 4){
>                  if((ajax.status >= 200 && ajax.status < 300) || (ajax.status == 304)){
>                      document.getElementById('output').innerHTML = ajax.responseText;
>                  }else{
>                      document.getElementById('output').innerHTML = 'Error ' + ajax.statusText;
>                  }
>              }
>          };
>              document.getElementById('btn').onclick = function(){
>                  ajax.open('GET', 'resources/test.txt', true);
>                  ajax.send(null);
>              };
>              **return ajax;**
>      }
>      function getXMLHttpRequestObject(){
>          var ajax = null;
>          if(window.XMLHttpRequest){
>              ajax =  new XMLHttpRequest();
>          }else if(window.ActiveXObject){
>              ajax = new ActiveXObject('MSXML2.XMLHTTP.3.0');
>          }    
>          **return ajax**
>      }
...