Reputation: 13
I am trying to do an $http.post
and get the response, I tried in several ways but I can't get it working. The data I am sending (userData) is an json object.
I am accepting data in Excel content addin app from user and converting into json to post the data to Restful web service in c#. Here is the piece of code:
function postData(url, dataToLoad){
var deferred = $q.defer();
deferred.resolve($http.post(url, dataToLoad).success(function(data) { deferred.resolve(data); }));
return deferred.promise;
}
We have tested using through POSTMAN tool and it work fine but when trying to use it through angularjs, we are not getting any response.
Upvotes: 1
Views: 88
Reputation: 22
Try below code, hope this will solve your problem
function postData(url, dataToLoad){
var deferred = $q.defer();
deferred.resolve($http.post(url, dataToLoad)
.then(function (data){ deferred.resolve(data); },
function (data){ deferred.resolve(data); }));
return deferred.promise;
}
Upvotes: 1
Reputation: 724
Isha.
As i can see from your code, you're resolving your deferred object immideately. In your case to make it work right you need to make some changes.
function postData(url, dataToLoad){
var deferred = $q.defer();
$http.post(url, dataToLoad)
.success(function(data) {
deferred.resolve(data);
});
return deferred.promise;
}
But in this case you don't need to use deferred at all. You can just make an http post request
function postData(url, dataToLoad){
return $http.post(url, dataToLoad);
}
Upvotes: 0