Location.href не работает после ajax (подробнее)

Когда вызов ajax завершается успешно, выполняется функция обратного вызова. Функция в функции обратного вызова никак не работает.

Мой код:

    sendAjax(url, data, method, async, callBackFn, IgnoreException) {
         $.ajax({
            type:method,
            async:async,
            url:url,
            data:data
            timeout:timeout,
            beforeSend:function(xmlHttpRequest) {
              xmlHttpRequest.setRequestHeader("AJAX", "true");
            },
            success:function(data) {
               try {
                 var responseText = $.parseJSON(data);
                 if (responseText.error_code && !IgnoreException) {
                    alert(responseText.error_msg);
                    var fnName = responseText.LOGIN||{};
                    if (typeof window[fnName] == 'function') {
                       var args = responseText.LOGIN_PARAM||{};
                       window[fnName](args);
                    }
                 } else {
                    callBackFn($.parseJSON(data));
                    return;
                 }
               } catch(e) {
                 ~~~~~~~~~
               } finally {
               }
            }

})

}

. . . .

sendAjax("mo/serviceAction.do", $("#form").serialize(), "post", true, callback);

. . . .

function callback(param) {
   alert("Here!");
   location.href = "intent://host&params#intent;scheme='scheme';package=package";
}

Однако, если функция, которая не была выполнена после вызова ajax, выполняется как событие нажатия на теге кнопки, выполняется location.href ... Но, alert («Вот!») Работает !!

Почему эти две ситуации разные?

А что, если я хочу запустить location.href прямо в обратном вызове?

Вы не передаете значение для параметра IgnoreException, которым, следовательно, является undefined, что означает, что !IgnoreException всегда оценивается как истинное. Не совсем уверен, что понимаю вашу проблему. Но я не понимаю, как можно вызвать вашу функцию обратного вызова.

Jeto 28.08.2018 08:53
Поведение ключевого слова "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) для оценки ваших знаний,...
0
1
107
1

Ответы 1

Вы неправильно написали acllBackFn в качестве имени параметра.

sendAjax(url, data, method, async, acllBackFn, IgnoreException)

И позже.

callBackFn($.parseJSON(data));

вы забыли )

NoobTW 28.08.2018 09:01

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