Skip to content

Instantly share code, notes, and snippets.

@progreccor
Forked from Septdir/joomla-ajax.js
Created February 25, 2019 14:22

Revisions

  1. @Septdir Septdir revised this gist Feb 25, 2019. 1 changed file with 9 additions and 16 deletions.
    25 changes: 9 additions & 16 deletions joomla-ajax.js
    Original file line number Diff line number Diff line change
    @@ -1,33 +1,26 @@
    let request = new XMLHttpRequest(),
    requestUrl = '', // Указываем url запроса
    formData = new FormData(); // Перадаем <form> или просто добавляем ниже через append что нужно

    // Отравляем запрос
    request.open('POST', 'url');
    request.open('POST', requestUrl);
    request.send(new URLSearchParams(formData));

    // Отлавливаем состаянии
    request.onreadystatechange = function () {

    // Запрос запвершился и ответ 200
    if (this.readyState === 4 && this.status === 200) {
    // Чекаем что в ответе json
    let response = false;
    try {
    response = JSON.parse(this.response);
    } catch (e) {
    response = false;
    console.error(request.status + ' ' + request.message);
    return;
    }
    if (response) {
    // Error если joomla отдает не success
    if (!response.success) {
    console.error(response.message);
    }
    // Говорим что страница обновилась.
    if (response.success) {
    console.log(response.data);
    document.dispatchEvent(new Event('DOMContentLoaded', {'bubbles': true}));

    } else {
    console.error(request.status + ' ' + request.message);
    console.error(response.message);
    }
    } else if (this.readyState === 4 && this.status !== 200) {
    console.error(request.status + ' ' + request.message);
    }
    };
    };
  2. @Septdir Septdir created this gist Feb 13, 2019.
    33 changes: 33 additions & 0 deletions joomla-ajax.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,33 @@
    let request = new XMLHttpRequest(),
    formData = new FormData(); // Перадаем <form> или просто добавляем ниже через append что нужно

    // Отравляем запрос
    request.open('POST', 'url');
    request.send(new URLSearchParams(formData));

    // Отлавливаем состаянии
    request.onreadystatechange = function () {

    // Запрос запвершился и ответ 200
    if (this.readyState === 4 && this.status === 200) {
    // Чекаем что в ответе json
    let response = false;
    try {
    response = JSON.parse(this.response);
    } catch (e) {
    response = false;
    console.error(request.status + ' ' + request.message);
    }
    if (response) {
    // Error если joomla отдает не success
    if (!response.success) {
    console.error(response.message);
    }
    // Говорим что страница обновилась.
    document.dispatchEvent(new Event('DOMContentLoaded', {'bubbles': true}));

    } else {
    console.error(request.status + ' ' + request.message);
    }
    }
    };