jQuery: ошибка превышения максимального размера стека вызовов - PullRequest
0 голосов
/ 25 февраля 2020

Я использую приведенный ниже код, чтобы сохранить сообщение как черновик

$("body").on('click', 'button#post_draft', function(event) {
  var post_title = $("#post_title").val();
  var post_slug = $("#post_slug").val();
  var post_content = $("#post_content").summernote('code');
  var post_category_id = $(".post_category").val();
  var post_excerpt = $("#post_excerpt").val();
  var post_tags = $("#post_tags").tagging("getTags");
  var post_featured_image = $('#upload_image').get(0);
  var guestID = $(".post_guest").val();
  var post_status = $("#post_status").is(':checked');

  if (post_title != "" && post_slug != "" && post_category_id != "") {
    toastr.info("Saving Post as Draft! Please Wait..", "Info!", {
      progressBar: !0,
      showMethod: "slideDown",
      hideMethod: "slideUp",
      timeOut: 2e3,
      preventDuplicates: true,
      positionClass: "toast-bottom-right"
    });
    $("select.post_category, #upload_image, [id^=post_]").attr("disabled", true);
    $('#post_content').summernote('disable');
    $("#post_draft").html("<i class='ft-loader spinner'></i> &nbsp;&nbsp;Saving Post..");

    $image_crop.croppie('result', {
      type: 'canvas',
      size: 'viewport'
    }).then(function(response) {
      $.ajax({
        url: 'saveDraft.php',
        type: 'POST',
        dataType: 'JSON',
        data: {
          action: "saveDraft",
          type: "post",
          incImages: "images",
          id: post_id,
          title: post_title,
          slug: post_slug,
          category: post_category_id,
          content: post_content,
          excerpt: post_excerpt,
          tags: post_tags,
          featured_image: response,
          original_image: $original_image,
          guestID: guestID,
          status: post_status
        },
        success: function(resp) {
          if (resp.status == "success") {
            $("select.post_category, #upload_image, [id^=post_]").attr("disabled", false);
            $('#post_content').summernote('enable');
            $("#post_title").val("");
            $("#post_slug").val("");
            $('#post_content').summernote('reset');
            $(".post_category").val("").change();
            $("#post_excerpt").val("");
            $("#post_tags").tagging("reset");
            $("#upload_image").val("");
            $("#image-cropper-section").slideUp("slow");
            $("#image_demo").empty();
            $('#post_status').prop('checked', false);
            $("#post_draft").html("<i class='fa fa-save fa-sm'></i> &nbsp;Save as Draft");
            toastr.success(resp.value, "Success!", {
              progressBar: !0,
              showMethod: "slideDown",
              hideMethod: "slideUp",
              timeOut: 2e3,
              preventDuplicates: true,
              positionClass: "toast-bottom-right"
            });
            $(".post_category").focus();
          }
          if (resp.status == "error") {
            toastr.error(resp.value, "Error!", {
              progressBar: !0,
              showMethod: "slideDown",
              hideMethod: "slideUp",
              timeOut: 2e3,
              preventDuplicates: true,
              positionClass: "toast-bottom-right"
            });
            return false;
          } else {
            $("select.post_category, #upload_image, [id^=post_]").attr("disabled", false);
            $("#post_draft").html("<i class='fa fa-save fa-sm'></i> &nbsp;Save as Draft");
            $('#post_content').summernote('enable');
            console.log(resp);
          }
        }
      });
    })
  }
});

Всякий раз, когда я запускаю приведенный выше код, я получаю сообщение об ошибке в консоли, как показано ниже

Uncaught (в обещании) RangeError: Превышен максимальный размер стека вызовов

PS: я использую приведенный выше код для сохранения в виде черновика при нажатии кнопки, а также при вызове приведенная ниже функция

window.setInterval(function() { 
  autoSave(); 
}, 10000)

Единственное различие между этими двумя кодами состоит в том, что функция autoSave() не имеет параметра изображения, а button#post_draft имеет параметр изображения, который необходимо отправить по нажатию ajax кнопки.

Это ошибка, которую я получил в первый раз, не знаю, как с ней бороться. Было бы здорово, если бы кто-нибудь мог помочь мне здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...