Jquery AJAX для чистого js

#javascript #jquery #ajax

#javascript #jquery #ajax

Вопрос:

Я пытаюсь изменить JQuery код на JavaScript xhttp .

Это мой jQuery

 var sendRequest = function(){
    $.ajax({
        url: urlIn, 
        data: dataIn,
        type: typeIn,
        success: funcSuccess,
        error: funcError,
    });
};
  

Это мой JavaScript.

 var sendRequest = function() {
 var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 amp;amp; this.status == 200) {
        funcSuccess(this.responseText);
    }else{
        funcSuccess(this.responseText);
    }
  };
  xhttp.open(typeIn, urlIn, true);
  xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhttp.send(dataIn);   

}
  

Это не работает.
Что я пропустил?

Комментарии:

1. Какая-либо ошибка? Вы видите что-нибудь на вкладке сеть в инструментах разработчика браузера? Что такое typeIn urlIn или funcSucces() ?

2. почему вы вызвали funcSuccess в блоке else …?

3. синтаксис верен, TypeIn = POST, urlIn = request.php , funcSuccess — это функция обратного вызова. все предназначено для длинного опроса AJAX, только для функции jQuery это работает, но когда я пытаюсь изменить его на JavaScript, это не работает.

4. Возможно this.status == 200 , так и есть false . С XHR все в порядке. Я думаю, что это ошибка сервера.

5. Это POST-запрос, поэтому возможно, что сервер отвечает 201 кодом (201 созданный). Но это не имеет значения, поскольку у него есть funcSuccess даже ошибка :). Весь код представляет собой беспорядок. Но, не зная ошибок, ответа сервера и т. Д. мы не можем ему помочь.