1.0.4 • Published 4 years ago

ajax-minify v1.0.4

Weekly downloads
5
License
ISC
Repository
github
Last release
4 years ago

ajax-minify

Небольшой модуль для облегчения работы с ajax запросами на стороне клиента. Модуль использует файловый импорт и экспорт, поэтому для его успешного и комфортного использования необходим сборщик модулей, например webpack.

Пример использования

    import Ajax from 'ajax-minify';

    Ajax.get('/query', (res) => {
        console.log(res.text());
    });

    // Console:
    // Вы попали на страницу /query

Список функций

get

Отправляет по указанному адресу запрос с методом GET

Список аргументов:

  • url *обязательный
  • success *обязательный - будет вызвана в случае успешного завершения запроса. В качестве параметра будет передан объект HttpSuccess
  • error - будет вызвана в случае ошибки или тайм-аута. В качестве параметра будет передан объект HttpError
    Ajax.get('/query', (res) => {
        console.log(res.json());
    }, (error) => {
        console.log(error.type);
    });

post

Отправляет по указанному адресу запрос с методом POST. Если вам необходимо вместе с данными отправить на сервер и специфичные заголовки, то рекомендуется использовать метод query, так как к post нельзя прикрепить заголовки.

Список аргументов:

  • url *обязательный
  • data <string | object | Blob | ReadableStream | FormData | ArrayBuffer | TypedArray> - данные, которые будут отправлены на сервер в теле запроса. Если передан чистый объект, который не является экземпляром перечисленных выше классов, то он будет сериализован в json, который затем будет отправлен на сервер (заголовок также будет выставлен автоматически). Поведение с остальными типами будет стандартным, в соответствии со встроенной функциональностью браузера.
  • success *обязательный - будет вызвана в случае успешного завершения запроса. В качестве параметра будет передан объект HttpSuccess
  • error - будет вызвана в случае ошибки или тайм-аута. В качестве параметра будет передан объект HttpError
    const data = {
        type: "message",
        body: "Hello"
    };

    Ajax.post('/query', data, (res) => {
        console.log(res.text());
    }, (error) => {
        console.log(error.type);
    });

query

Более гибкий метод для отправки ajax запросов, который принимает в качестве параметра объект со следующими свойствами:

  • url *обязательный
  • method обязательный* - метод http запроса. (следует следить за тем, чтобы не использовать параметр data** вместе с методами запроса у которых не может быть тела)
  • data <string | object | Blob | ReadableStream | FormData | ArrayBuffer | TypedArray> - данные, которые будут отправлены на сервер в теле запроса. Если передан чистый объект, который не является экземпляром перечисленных выше классов, то он будет сериализован в json, который затем будет отправлен на сервер (заголовок также будет выставлен автоматически). Поведение с остальными типами будет стандартным, в соответствии со встроенной функциональностью браузера.
  • success *обязательный - будет вызвана в случае успешного завершения запроса. В качестве параметра будет передан объект HttpSuccess
  • error - будет вызвана в случае ошибки или тайм-аута. В качестве параметра будет передан объект HttpError
  • loadstart - будет вызвана прямо перед отправкой данных на сервер. Никаких параметров не передается.
  • loadend - будет вызвана в конце обработки запроса, причем не важно завершился ли запрос успешно, с ошибкой или истек timeout. Никаких параметров не передается. Вызывается самым последним.
  • progress - будет периодически вызываться по мере загрузки ответа с сервера. Количество вызовов зависит от размера получаемых данных. В качестве параметра будет передан объект HttpProgress, с помощью которого можно отслеживать процесс загрузки.
  • headers - http заголовки, которые должны быть отправлены на сервер. Точный синтаксис смотрите в примере кода.
    Ajax.query({
        url: '/query',
        method: 'post',
        data: {
            message: 'Hello, Server'
        },
        headers: [
            ['Content-Type', 'text/plain']
        ],
        loadstart: () => {
            console.log('Start query');
        },
        loadend: () => {
            console.log('End query');
        },
        success: (res) => {
            console.log(res.text());
        },
        error: (error) => {
            console.log(`Error ${error.type} at ${error.url}`);
        },
        progress: (info) => {
            console.log(`Loaded: ${info.loaded} Total: ${info.total}`);
        }
    });

Объекты из параметров

HttpSuccess

Передается в качестве параметра в функцию success. Список свойств:

  • text() - возвращает тело ответа в виде строки
  • json() - возвращает объект, если в теле запроса находится корректный json, иначе возвращает false
  • status - числовой статус ответа.
  • statusText - весь текст статуса ответа. Например: 200 OK.
  • responseURL - url адрес ответа.
  • loaded - количество загруженных байт
  • timeStamp - прошедшее время
  • headers - список заголовков, которые пришли с сервера в виде объекта
  • headersText - необработанная строка с заголовками ответа
  • getHeader(header) - возвращает значение указанного заголовка

HttpError

Передается в качестве параметра в функцию error. Список параметров:

  • type - тип ошибки
  • url - url адрес, который был передан для запроса

HttpProgress

Передается в качестве параметра в функцию progress. Список параметров:

  • loaded - количество загруженных байт
  • total - общее количество байт
  • timeStamp - прошедшее время
  • status - числовой статус ответа.
  • statusText - весь текст статуса ответа. Например: 200 OK.
  • responseURL - url адрес ответа.
  • headers - список заголовков, которые пришли с сервера в виде объекта
  • headersText - необработанная строка с заголовками ответа
  • getHeader(header) - возвращает значение указанного заголовка
1.0.4

4 years ago

1.0.2

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago