PUT和POST Angularjs

时间:2015-08-20 08:41:52

标签: angularjs wcf ionic-framework ionic

我有一个带有WCF RESTful服务的Ionic项目,我希望能够插入和更新数据。我已经可以使用GET方法查看数据,但无法在互联网上找到PUT和POST的任何内容。我怎么能做到这一点?

获取方法

$scope.selectedDist=  function() {


                 $http.get("http://192.168.1.113/Service1.svc/GetAllComp")
              .success(function(data) {

              var obj = data;
              var ar = [];
              angular.forEach(obj, function(index, element) {

              angular.forEach(index, function(indexN, elementN) {


                 ar.push({CompID: indexN.CompID, CompName: indexN.CompName});

                  $scope.districts = ar;
              }); 
              });

            })

          .error(function(data) {
              console.log("failure");})    


       };

发布我试过的方法

#1

 $scope.insertdata = function() {
       var ar = [{'M1':$scope.M1, 'M2':$scope.M2,'M3':$scope.M3,'M4':$scope.M4,'M5':$scope.M5,'M6':$scope.M6,'M7':$scope.M7,'M8':$scope.M8,'M9':$scope.M9,'M10':$scope.M10,}]


     $http.post("http://192.168.1.113/Service1.svc/GetAllComp", ar)
       .success(function(data)
         {
           console.log("data inserted successfully")
         })
         .error(function(data)
           {
             console.log("Error")
           })

#2

$scope.insertdata = function() {
       var ar = [{'M1':$scope.M1, 'M2':$scope.M2,'M3':$scope.M3,'M4':$scope.M4,'M5':$scope.M5,'M6':$scope.M6,'M7':$scope.M7,'M8':$scope.M8,'M9':$scope.M9,'M10':$scope.M10,}]

$http ({ 
    url : "localhost:15021/Service1.svc/TruckDetails" , 
    Method :  "POST" , 
    headers :  { 
        'Content-Type' :  'Application / json; charset = utf-8' 
    }, 
    Data :  ar 
})

我是否也需要在我的服务上制作POST或PUT方法,还是可以使用GET方法?

1 个答案:

答案 0 :(得分:0)

可以使用get方法,结合查询字符串来发布和放置数据,但它是designed的内容,应该是由于安全等几个原因而避免使用。

话虽如此,使用帖子和角度并不是那么困难,在下面,相当天真的服务,你可以看到所有要做的就是在你的服务功能中传递你的数据调用

.service('MyService', function($http) {

     this.postMethod = function(data) {
         return $http.post('http://my.url', data);
     };

     this.putMethod = function(id, data) {
         return $http.put('http://my.url/' + id, data);
     };
}

因此,在您的控制器中,您可以使用需要存储的$scope数据注入和调用服务方法。

在查看了您的尝试之后,您似乎使用相同的网址来获取和发布:"http://192.168.1.113/Service1.svc/GetAllComp"这实际上让我相信您还没有想过在您的服务器上实施这些方法。你能证实这一点吗?

除此之外,在尝试发送请求时查看状态代码总是有用的,因为它们提供了有关发生的错误性质的大量信息。您可以在控制台或外部程序(例如Fiddler

中进行调查

P.S。

  

弃用通知$ http遗留承诺方法成功与错误   已被弃用。请改用标准方法。如果   $ httpProvider.useLegacyPromiseExtensions设置为false然后这些   方法将抛出$ http / legacy错误。