Uncaught RangeError: превышен максимальный размер стека вызовов в вызове jquery ajax

У меня проблема с вызовом jQuery ajax. Если я прокомментирую вызов ajax, он работает. Он проходит все проверки и переходит к другому, у которого есть вызов ajax. если я добавлю предупреждение, комментируя вызов ajax, он работает нормально и показывает предупреждение.

ошибка в консоли: Uncaught RangeError: превышен максимальный размер стека вызовов.

function submit() {
  var companyname = $('#companyname').val();
  var fname = $('#fname').val();
  var username = $('#email').val();
  var countrycode = $('#country-code').val();
  var mobile = $('#mobile').val();
  var captcha = $('#captcha').val();
  var countryid = $('#country-list').val();
  var ctype = $('#ctype').val();
  console.info(companyname);
  console.info(fname);
  console.info(username);
  console.info(countrycode);
  console.info(mobile);
  console.info(captcha);
  console.info(countryid);
  console.info(ctype);
  if (companyname == '') {
    Swal.fire({
          title: 'Enter Company Name',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (fname == '') {
    Swal.fire({
          title: 'Enter Admin Name',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (username == '') {
    Swal.fire({
          title: 'Enter Admin Email',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (countrycode == '') {
    Swal.fire({
          title: 'Select Country Code',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (mobile == '') {
    Swal.fire({
          title: 'Enter Admin Mobile',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (captcha == '') {
    Swal.fire({
          title: 'Enter Captcha',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (countryid == '') {
    Swal.fire({
          title: 'Select Country',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else {
      $.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>Home/createcsoorpartner_submit",
        data: {
          companyname: companyname,
          fname: fname,
          countryid: countryid,
          mobile: mobile,
          email: email,
          countrycode: countrycode,
          captcha: captcha,
          ctype: ctype,
        },
        success: function (data) {
          resultObj = $.parseJSON(data);
          console.info(resultObj);
          if (resultObj.result == "success") {
            Swal.fire({
              title: resultObj.msg,
              width: 500,
              padding: '1em',
              background: '#fff',
              backdrop: `
                rgba(0,0,123,0.4)
                left top
                no-repeat
              `
            }).then(function (result) {
                    if (result.value) {
                      window.location = "<?php //echo base_url(); ?>Home";
                    }
                  })
          } else {
            Swal.fire({
              title: resultObj.msg,
              width: 500,
              padding: '1em',
              background: '#fff',
              backdrop: `
                rgba(0,0,123,0.4)
                left top
                no-repeat
              `
            })
          } 
        }
  })(1);
  }
}

Вы получаете все значения в вашем контроллере?

Mr Khan 21.12.2020 07:12

Нет, я пытался распечатать значения сообщений. но он также не вызывает этот URL. публичная функция createcsoorpartner_submit() { print_r('привет');

Nazeer Shaik 21.12.2020 07:13

data: {companyname: "" } передать только это в данные, а затем проверить, достигает ли он контроллера. В контроллере. Сделайте эхо, чтобы увидеть, достиг ли он пути

Mr Khan 21.12.2020 07:15

хорошо. я проверю

Nazeer Shaik 21.12.2020 07:15

да, это работает, если я публикую только название компании

Nazeer Shaik 21.12.2020 07:17

Итак, проблема в данных, которые вы передаете. Зайдите внутрь части else и в console.info все передаваемые значения. Посмотрите, не пропал ли кто-нибудь из них

Mr Khan 21.12.2020 07:18

В консоли я получаю все значения, которые я передал. Pro Tech One Nazeer [email protected] 91 7897897891 x09mw 812 Clinic_Admin

Nazeer Shaik 21.12.2020 07:24

попробуйте исключить одно из значений одно за другим и проверьте, работает ли оно. У Ajax возникают проблемы с одним значением данных.

Mr Khan 21.12.2020 07:26

с параметром электронной почты я получаю эту проблему. вместо имени пользователя я отправляю его в ajax по электронной почте. Теперь эта проблема была исправлена. но в ctype я получаю пустое значение в контроллере. но в консоли я получаю значение.

Nazeer Shaik 21.12.2020 07:43

Где ваша переменная электронной почты? Я не могу найти переменную электронной почты в вашем коде. Вы используете переменную имени пользователя для поля электронной почты. просто передайте имя пользователя вместо переменной электронной почты, и это должно работать

Mr Khan 21.12.2020 07:49

да его работа хорошая. но в ctype я получаю пустое значение в контроллере. перед ajax в консоли я получаю правильное значение.

Nazeer Shaik 21.12.2020 07:51

Показать сс ответа в контроллере.

Mr Khan 21.12.2020 07:54

сейчас работает хорошо. большое спасибо за помощь

Nazeer Shaik 21.12.2020 07:56

Хорошо, отлично, если это было полезно, примите ответ и проголосуйте.

Mr Khan 21.12.2020 08:01

Было бы очень полезно, если бы вы могли принять ответ

Mr Khan 22.12.2020 05:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
15
855
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

function submit() {
  var companyname = $('#companyname').val();
  var fname = $('#fname').val();
  var username = $('#email').val();
  var countrycode = $('#country-code').val();
  var mobile = $('#mobile').val();
  var captcha = $('#captcha').val();
  var countryid = $('#country-list').val();
  var userrole = $('#ctype').val();
  
  if (companyname == '') {
    Swal.fire({
          title: 'Enter Company Name',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (fname == '') {
    Swal.fire({
          title: 'Enter Admin Name',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (username == '') {
    Swal.fire({
          title: 'Enter Admin Email',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (countrycode == '') {
    Swal.fire({
          title: 'Select Country Code',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (mobile == '') {
    Swal.fire({
          title: 'Enter Admin Mobile',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (captcha == '') {
    Swal.fire({
          title: 'Enter Captcha',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else if (countryid == '') {
    Swal.fire({
          title: 'Select Country',
          width: 500,
          padding: '1em',
          background: '#fff',
          backdrop: `
            rgba(0,0,123,0.4)
            left top
            no-repeat
          `
        })
  } else {
    console.info(companyname);
  console.info(fname);
  console.info(username);
  console.info(countrycode);
  console.info(mobile);
  console.info(captcha);
  console.info(countryid);
  console.info(userrole);
      $.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>Home/createcsoorpartner_submit",
        data: {
          companyname: companyname,
          fname: fname,
          countryid: countryid,
          mobile: mobile,
          email: username,
          countrycode: countrycode,
          userrole: userrole,
          captcha: captcha,
        },
        success: function (data) {
          var resultObj = $.parseJSON(data);
          console.info(resultObj);
          if (resultObj.result == "success") {
            Swal.fire({
              title: resultObj.msg,
              width: 500,
              padding: '1em',
              background: '#fff',
              backdrop: `
                rgba(0,0,123,0.4)
                left top
                no-repeat
              `
            }).then(function (result) {
                    if (result.value) {
                      window.location = "<?php //echo base_url(); ?>Home";
                    }
                  })
          } else {
            Swal.fire({
              title: resultObj.msg,
              width: 500,
              padding: '1em',
              background: '#fff',
              backdrop: `
                rgba(0,0,123,0.4)
                left top
                no-repeat
              `
            })
          } 
        }
  });
  }
}
Ответ принят как подходящий

Вы получаете ошибку, которая $.ajax будет генерироваться, если вы попытаетесь передать структуру, содержащую циклические ссылки.

Если тип определения данных неверен, данные не могут быть успешно отправлены в фоновый режим. Фон не получает данные, внешний интерфейс всегда будет отправлять, и этот цикл приводит к переполнению стека.

Поэтому все, что вам нужно сделать, это проверить правильность параметров, которые вы отправляете в ajax.

Другие вопросы по теме