我是angular和ASP.NET web API的新手。在角度我从表单获取值并尝试通过post请求将其传递给服务器她是角度的代码。
app.controller('AddTrnController',['$scope', 'CategoriesService','$http', function($scope, CategoriesService, $http){
$scope.categories =[{}];
$scope.AddTrn = {};
function init(){
CategoriesService.getCategories("1")
.success(function(data){
$scope.categories = data;
})
.error(function(data, status, headers){alert(status);});
}
init();
$scope.change= function(option){
$scope.AddTrn.TrnID = option.CatID;
$scope.AddTrn.TrnAccount = 1;
};
$scope.UpdateTrans=function(){
alert("21312");
$http({method:"post",
url:'http://localhost:18678/api/Transaction',
params:"data:$scope.AddTrn"}
).success(function(){alert("succeeded");
}).error(function(){alert("faild");});
};
}]);
她是Web API的代码。
public HttpResponseMessage PostTransaction(String transaction)
{
if (ModelState.IsValid)
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, transaction);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = transaction}));
return response;
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
我总是得到钓鱼者的反应失败,当我在API中断点时,它不会触发。
答案 0 :(得分:1)
您正在使用的params选项会将项添加到查询字符串中,对于您可能希望使用数据选项的帖子,请尝试将代码更改为:
$scope.UpdateTrans=function(){
alert("21312");
$http({method:"post",
url:'http://localhost:18678/api/Transaction',
data:$scope.AddTrn
}
).success(function(){alert("succeeded");
}).error(function(){alert("faild");});
};