12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- var Sender = (function () {
- var module = {};
- /**
- * Выполнить POST запрос
- * @param {Function} callback Функция обработчик результата запроса
- * @param {String} uri Ресурс запроса
- * @param {Object} params Параметры, передаваемые на сервер
- * @param {Object} callbackParams Параметры, которые необходимо передать в функцию callback
- * @param {Boolean} isAsinc Использовать ли асинхронный запрос (по умолчанию true)
- */
- module.Go = function (callback, uri, params, callbackParams, isAsinc = true) {
- if (uri == null || typeof uri != "string") {
- console.warn("URI не был передан");
- return;
- }
- if (params == null || typeof params != "object") {
- params = {};
- }
- var xhr = new XMLHttpRequest();
- // * Обработка результата запроса
- xhr.onload = function (event) {
- var data;
- try {
- data = JSON.parse(this.response);
- } catch (error) {
- Notify.Show(error);
- data = null;
- } finally {
- if (typeof callback == "function") {
- var nerror = data || data.Error || data.Error === null || data.Error === "null";
- if (nerror) {
- callback(data, callbackParams);
- } else {
- Notify.Show("Произошла ошибка в процессе выполнения запроса");
- }
- }
- }
- };
- xhr.onabort = function (event) {
- Notify.Show("Выполнение запроса было прервано...");
- };
- xhr.onerror = function (event) {
- Notify.Show("Выполнение запроса завершилось неудачей. Перезагрузите страницу и повторите попытку. Если проблема сохраняется, пожалуйста, сообщите об этом администратору admin@ktk-45.ru");
- };
- xhr.ontimeout = function (event) {
- Notify.Show("Время ожидания запроса истекло... Проверьте соединение с интернетом");
- };
- xhr.open("POST", uri, isAsinc);
- xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
- xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
- xhr.send(JSON.stringify(params));
- };
- return module;
- })();
|