Я звоню функцию, которая делает ajax GET
к URL, например:
// parameters = url, callback, boolean
that.mapUrl(window.location.search, function(spec) {
console.log("initial mapping done");
console.log(spec);
// do stuff
}, true);
mapUrl
вызовет запрос Ajax. Внутри обработчика Ajax done
или success
, я хочу, чтобы вызвать мою функцию обратного вызова, но делает это так:
$.ajax({
method: 'GET',
url: obj[1],
context: $('body')
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("FAILED");
configuration = {
"errorThrown":errorThrown,
"textStatus": textStatus,
"jqXHR": jqXHR
}
}).done(function(value, textStatus, jqXHR) {
console.log("OK");
console.log(callback) // undefined!
configuration = {
"value":value,
"textStatus": textStatus,
"jqXHR": jqXHR
}
});
Вопрос:
Так мне интересно, как передать свою функцию обратного вызова в ajax
done-callback
, есть идеи как это сделать?
Спасибо!
EDIT
Вот полный mapURL
функция
that.mapUrl = function (spec, callback, internal) {
var key,
obj,
parsedJSON,
configuration = {"root" : window.location.href};
if (spec !== undefined && spec !== "") {
obj = spec.slice(1).split("=");
key = obj[0];
console.log(key);
switch (key) {
case "file":
$.ajax({
method: 'GET',
url: obj[1],
context: $('body')
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("FAILED");
configuration = {
"errorThrown":errorThrown,
"textStatus": textStatus,
"jqXHR": jqXHR
}
}).done(function(value, textStatus, jqXHR) {
console.log("OK");
configuration = {
"value":value,
"textStatus": textStatus,
"jqXHR": jqXHR
}
});
break;
default:
// type not allowed, ignore
configuration.src = [];
break;
}
}
return configuration;
};
Можете ли вы поделиться объявлением метода? MapUrl –
через секунду, вверх – frequent
Вы вызываете метод? Не знаете, в чем проблема. Покажите, что вы пробовали. – epascarello