Показать сообщение отдельно
  #1 (permalink)  
Старый 26.12.2023, 10:23
Интересующийся
Отправить личное сообщение для Magic Light Посмотреть профиль Найти все сообщения от Magic Light
 
Регистрация: 26.12.2023
Сообщений: 11

Ajax запрос блокирует обмен данными с сервером
Есть самописный сайт, отлаживаемый на OpenServer. При написании клиентской части используются асинхронные ajax-запросы.
Возникла следующая проблема: после начала выполнения запроса (свойство readyState получает значение = 1 (OPENED)) и до его окончания пропадает возможность обмениваться данными с сервером, тоесть не работают ссылки на сайте, не перезагружается страница и т.д. сайт виснет.
В тоже время другие скрипты на клиентской части выполняются. Например, открываются модальные окна, привязанные к js и т.д.
Явно дело не в серверной части, потому что сайт открытый в другом браузере на этой же машине работает нормально, браузер нормально обменивается данными с сервером.
Вот код используемого запроса:
function ajaxRequest(address, params, functionName){
    var request = false;
    try{
        request = new XMLHttpRequest();
        if (request.overrideMimeType){
            request.overrideMimeType('text/xml');
        }
    } catch(e1){
        try{
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e2){
            try{
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e3){}
        }
    }

    if (!request) {
        /*alert('Не вышло :( Невозможно создать экземпляр класса XMLHTTP '); */
        return false;
    }

    request.onreadystatechange = function(){
        if(this.readyState === 4){
            if(this.status === 200){
                if(this.responseText != null){
                    functionName(this.responseText);
                    return true;
                }
                else{
                    /*alert("Ошибка Ajax: данные не получены");*/
                    return false;
                }
            }
            else {
                /*alert("Ошибка Ajax: " + this.statusText);*/
                return false;
            }
        }
    }
    request.open("POST", address, true)
    if(!(params instanceof FormData)) request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.send(params);
}

С чем может быть связана проблема?

Последний раз редактировалось Magic Light, 26.12.2023 в 10:28.
Ответить с цитированием