Ajax-запрос не передан контроллеру - PullRequest
3 голосов
/ 14 ноября 2011

Я отправляю запрос AJAX на мой контроллер .Это развитие сделано в среде JSP и Spring. SimpleFormController переопределяется контроллером , который я использую.

Используя JavaScript, я создаю объект и отправляю запрос.этот запрос не передается контроллеру.

JavaScript-код, который отправляет запрос.

function getStates(){
    var httpRequest;
    var country = document.getElementById('countryName');
    alert(country);
    var url = '/developer/register.htm';

    url = url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true');

     if (window.ActiveXObject)
     {
         httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
     }
     else if (window.XMLHttpRequest)
     {
         httpRequest = new XMLHttpRequest();
     }

     httpRequest.open("GET", url, true);
     httpRequest.onreadystatechange = function() {processRequest(); };
     httpRequest.send(null);
}

function processRequest() {
    if(httpRequest.readyState == 4){
        alert("inside ready state");
        var response = http.responseText;
        document.getElementById('states').innerHTML = response;
    }
}

Переменная url дается так, как я упоминал в диспетчерском сервлете.

Браузер показывает ошибку в processRequest () , сообщающую, что httpRequest не определен.но я не получаю эту ошибку в предыдущих строках.Я использую этот объект в функции getStates () .

Ответы [ 2 ]

4 голосов
/ 14 ноября 2011

Это потому, что переменная httpRequest должна быть определена вне функции getStates()В противном случае processRequest() не сможет его увидеть.

1 голос
/ 14 ноября 2011

Либо объявите httpRequest за пределами getStates() (как глобальная переменная), либо передайте его processRequest():

httpRequest.onreadystatechange = function() { processRequest(httpRequest); };

function processRequest(httpRequest) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...