我有一个带有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方法?
答案 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错误。