query.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var Sender = (function () {
  2. var module = {};
  3. /**
  4. * Выполнить POST запрос
  5. * @param {Function} callback Функция обработчик результата запроса
  6. * @param {String} uri Ресурс запроса
  7. * @param {Object} params Параметры, передаваемые на сервер
  8. * @param {Object} callbackParams Параметры, которые необходимо передать в функцию callback
  9. * @param {Boolean} isAsinc Использовать ли асинхронный запрос (по умолчанию true)
  10. */
  11. module.Go = function (callback, uri, params, callbackParams, isAsinc = true) {
  12. if (uri == null || typeof uri != "string") {
  13. console.warn("URI не был передан");
  14. return;
  15. }
  16. if (params == null || typeof params != "object") {
  17. params = {};
  18. }
  19. var xhr = new XMLHttpRequest();
  20. // * Обработка результата запроса
  21. xhr.onload = function (event) {
  22. var data;
  23. try {
  24. data = JSON.parse(this.response);
  25. } catch (error) {
  26. Notify.Show(error);
  27. data = null;
  28. } finally {
  29. if (typeof callback == "function") {
  30. var nerror = data || data.Error || data.Error === null || data.Error === "null";
  31. if (nerror) {
  32. callback(data, callbackParams);
  33. } else {
  34. Notify.Show("Произошла ошибка в процессе выполнения запроса");
  35. }
  36. }
  37. }
  38. };
  39. xhr.onabort = function (event) {
  40. Notify.Show("Выполнение запроса было прервано...");
  41. };
  42. xhr.onerror = function (event) {
  43. Notify.Show("Выполнение запроса завершилось неудачей. Перезагрузите страницу и повторите попытку. Если проблема сохраняется, пожалуйста, сообщите об этом администратору admin@ktk-45.ru");
  44. };
  45. xhr.ontimeout = function (event) {
  46. Notify.Show("Время ожидания запроса истекло... Проверьте соединение с интернетом");
  47. };
  48. xhr.open("POST", uri, isAsinc);
  49. xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
  50. xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
  51. xhr.send(JSON.stringify(params));
  52. };
  53. return module;
  54. })();