Isha
Isha

Reputation: 13

$http.post is not sending the request?

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

Answers (2)

Vaibhav Mishra
Vaibhav Mishra

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

k10der
k10der

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

Related Questions