Ich habe einen AngularJS-Dienst erstellt, der eine AJAX-Anforderung an den Server sendet und das Antwortobjekt an den Controller zurückgibt. Unten ist mein Servicezurückgegebenes Objekt ist in einem benutzerdefinierten AJAX-Dienst nicht definiert
app.factory('ajaxService', function() {
return {
ajaxcall: function(url, type, data, handler) {
$.ajax({
url: url,
type: type,
data: data,
beforeSend: function(xhr) {
xhr.setRequestHeader("X-OCTOBER-REQUEST-HANDLER", handler);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
}
})
.done(function(response) {
console.log("ajaxService done: ");
console.log(response);
return response;
})
.fail(function(response) {
console.log("in onCheckUser-error: ajaxService ");
});
}
}
});
Der Regler wie unten
var app = angular.module('starter', [])
app.controller('myCtrl', function(ajaxService) {
var res = {};
res = ajaxService.ajaxcall("https://www.travelmg.in/check-login",'POST','',"onCheckLogin");
console.log(res);
});
hier definiert ist, erhalte ich die erwartete Antwort in der Konsole im ajaxService Service. Wenn ich die Antwort zurückgebe, sehe ich einen "undefinierten" Wert in der res-Variablen in der Konsole.
Ich verstehe nicht, warum die Res-Variable nicht definiert ist. Bitte schlagen Sie vor
Gibt es einen Grund, warum Sie '$ .ajax' anstelle von' $ http' verwenden? –