Когда вызов 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¶ms#intent;scheme='scheme';package=package";
}
Однако, если функция, которая не была выполнена после вызова ajax, выполняется как событие нажатия на теге кнопки, выполняется location.href ... Но, alert («Вот!») Работает !!
Почему эти две ситуации разные?
А что, если я хочу запустить location.href прямо в обратном вызове?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы неправильно написали acllBackFn в качестве имени параметра.
sendAjax(url, data, method, async, acllBackFn, IgnoreException)
И позже.
callBackFn($.parseJSON(data));
вы забыли )
Вы не передаете значение для параметра
IgnoreException, которым, следовательно, являетсяundefined, что означает, что!IgnoreExceptionвсегда оценивается как истинное. Не совсем уверен, что понимаю вашу проблему. Но я не понимаю, как можно вызвать вашу функцию обратного вызова.