我創建了一個AngularJS服務,它向服務器執行ajax請求並將響應對象返回給控制器。下面是我的服務返回的對象在自定義ajax服務中未定義
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 ");
});
}
}
});
控制器定義如下
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);
});
在這裏,我得到的ajaxService服務控制檯預期的響應。當我返回響應時,我在控制檯的res變量中看到一個「undefined」值。
我不明白爲什麼res變量是未定義的。請建議
是否有原因使用'$ .ajax'而不是'$ http'? –