Как обработать запрос?

Всем добрый вечер! подскажите что не так с кодом? ajax запрос возвращает страницу целиком .

<script type="text/javascript">
                const clients = document.querySelectorAll('#tbody-interactive > tr'); // находим все строки таблицы клиентов
                if(clients != null){                                                  // если есть хоть один
                    const modalInfo = document.querySelector('#modal-sysinfo');         // находим модальное окно
                    const modalBody = modalInfo.querySelector('div.modal-body');        // находим блок body
                    const modalForm = modalInfo.querySelector('form');                       // находим форму в этом окне
                    const infoArea    = modalBody.querySelector('textarea');            // находим поле ввода
                    const modalSubmit = modalInfo.querySelector('.info-submit');        // находим кнопку
                    const formContainer = document.createElement('div');                // создаем теневой блок для генерации formdata объектов

                    formContainer.setAttribute('style','position:fixed;top:0;left:0;visibility: hidden;'); // стли теневого блока
                    document.body.appendChild(formContainer);                           // добавляем пустой теневой блок в документ
                    const clientData = {};
                    infoArea.addEventListener('input', (event)=>{                       // вешаем обработчик input на поле ввода
                        let id = event.target.dataset.id;                                // устанавливаем из дата атрибута текущий id, с которым работает поле
                        if (!clientData[id]) {
  clientData[id] = {};
} 
clientData[id].sysinfo = event.target.value.trim();      // пишем в объект елемент с ключом id['sysinfo'] введенное значение поля
                    });
                    for(let i = 0; i < clients.length; i++){                            // перебираем строки таблицы и получаем для них текущие данные форм
                        clientData[clients[i].dataset.id] = getClientForm(clients[i].dataset.id); //пишем в объект елемент с ключом id  данные формы со страницы edit
                        //let button = clients[i].querySelector('.btn-sysinfo');
                        
                    }
                    
                    function getClientForm(id){    
                    (async () => {                         // получаем по id  данные формы со страницы edit
                        let response = await fetch(location.href.replace('client/','client')+'?edit='+id);  // формируем ссылку
                        let text = await response.text();                                                    // получаем xbcnsq  код html страницы
                        text = text.replace(/\t/gi,'').replace(/\n\n/gi,'\n').replace(' id="chkform"','');   // удаляем id у формы, табуляцию и лишние переносы строк
                        let formText = text.match(/<form[^>]*>([\s\S]*?)<\/form>/gi)[0];                    // находим и вырезаем форму из кода
                        formContainer.innerHTML = formText;                                             //вписываем форму в теневой блок для генерации formdata 
                        let fData = new FormData(formContainer.querySelectorAll('form')[0]);            // создаем объект formdata из текушей формы
                        console.dir(fData.get('sysinfo'));
                        console.dir(fData.get('ids_user_merge[]'));
                        return fData;                                
                        })()                                // возвращаем formdata из функции
                    } 

                    function infoModal(id){                                                        // создаем окно
                        let currentInfo = document.querySelector(`div.sysinfo[data-id="${id}"]`);   //находим в текущей строке поле с 'sysinfo'
                        console.log(id);
                        infoArea.dataset.id = id;                                                   // вписываем текущий id в дата атрибут поля ввода
                        modalInfo.querySelector('.modal-title').innerHTML = 'Внутренняя/служебная информация&nbsp;#&nbsp;' + id;  //обновляем заголовок окна
                        modalInfo.querySelector('#areaid').value = id;                               // в скрытый input вписываем id
                        infoArea.value = currentInfo.textContent.trim();                             // в поле ввода  вписываем id текст из 'sysinfo'
                        //$('#infoarea').val($(`div.sysinfo[data-id="${id}"]`).text());
                    }

                function updateInfo(event) {
  // обновление инфы
  event.preventDefault(); // блокируем штатное событие submit
  const id = modalInfo.querySelector('#areaid').value ; // достаём id из скрытого инпута

  $.ajax({
    // формируем запрос
    type: "POST", // тип запроса
    url: "/auth/client?updateinfo=" + id, // урл запроса
    cache: false, // отключаем кеш
    data: clientData[id], //берем data из объекта по id
    beforeSend: function () {
      // перед отправкой блокируем кнопку визуально и влючаем анимацию загрузчика
      $(modalSubmit).prop("disabled", true);
    },
    complete: function () {
      $(modalSubmit).prop("disabled", false); // по завершению разблокируем кнопку  и отлючаем анимацию загрузчика
    },
    success: function (data) {
      // если все ок то выводим в консоль результат - текст 'success'
      console.log("Успешно.");
      console.log(data);
    },
    error: function (data) {
      // если НЕ все ок то выводим в консоль результат - текст ошибки
      console.log("Ошибка.");
      console.log(data);

    },
  });
}
                                      
                }
            </script>
if (isset($_REQUEST['edit']) || isset($_REQUEST['updateinfo'])) 
                        {
                            $id = (int)$_REQUEST['edit'];
                            $currparams = db::i()->selectRow("select * from c_client where id = ".$id);
                            $updparams = array
                            (
                                'sysinfo' => $in['sysinfo']
                            );
<a onclick="infoModal( this.dataset.id )" class="btn btn-primary btn-sysinfo btn-sm" data-id="{{ row.id }}" role="button" data-toggle="modal" href="#modal-sysinfo"><span class="glyphicon glyphicon-pencil"></span></a>


<div class="modal fade" id="modal-sysinfo" tabindex="-1" role="dialog">
            <div class="modal-dialog" role="document">
                <div class="modal-content"> 
                      <!-- заголовок -->
                      <div class="modal-header" style="text-align:center;font-size:24px;">
                      <button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
                                 <span aria-hidden="true">&times;</span>
                            </button>
                            <div class="modal-title"></div>
                            
                      </div>
                      <form id="areatext" action='/' method="post" onsubmit="updateInfo(event);return false">
                              <input type="hidden" name="id" id="areaid">
                            <div class="modal-body">
                                <textarea class="form-control" style="overflow:auto;resize: vertical;height:300px;" name="infoarea" id="infoarea" rows="2" data-id="0" placeholder=""></textarea>
                              </div>
                            <div class="modal-footer">
                                  <button type="submit" class="btn btn-primary w-100 info-submit" style="width:100%;" name="goclient">
                                        <span class="submit-text">Сохранить</span>
                                        <span id="spinnerContainer">
                                            <svg class="spinner" id="appSpinner" width="24" height="30" viewBox="0 0 120 30" fill="#ffffff" hidden="true"><circle cx="15" cy="15" r="10"><animate attributeName="r" from="10" to="10" begin="0s" dur="0.8s" values="10;7;10" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="60" cy="15" r="7" fill-opacity="0.3"><animate attributeName="r" from="7" to="7" begin="0s" dur="0.8s" values="7;10;7" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="0.5" to="0.5" begin="0s" dur="0.8s" values=".5;1;.5" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="105" cy="15" r="10"><animate attributeName="r" from="10" to="10" begin="0s" dur="0.8s" values="10;7;10" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle></svg>
                                        </span>
                                    </button>
                            </div>
                        </form>
                </div>
            </div>
        </div>


Ответы (0 шт):