[英]Post data to server angular $http post
[
{
"name": "AAAAAA",
"date": "28-03-2016",
},
{
"name": "BBBBBB",
"date": "20-12-2016",
},
{
"name": "CCCCCC",
"date": "09-01-2016",
},
{
"name": "DDDDDD",
"date": "21-07-2016",
}
]
我的JavaScript:
var app = angular.module('app', []);
app.service('service', function($http, $q){
var deferred = $q.defer();
$http.get('names.json').then(function(data){
deferred.resolve(data);
});
this.getNames = function() {
return deferred.promise;
}
});
app.controller('FirstCtrl', function($scope, service, $http) {
var promise = service.getNames();
promise.then(function (data) {
$scope.names = data.data;
console.log($scope.names);
}
);
$scope.postfunction = function(data) {
$http({
method: 'POST',
url: 'serwerUrl' ,
data: {"name":$scope.name},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data){
console.log('data success');
});
HTML:
<tbody>
<tr ng-repeat="name in names">
<td>{{name.name}}</td>
<td>{{name.date}}</td>
<td><button ng-click="postfunction(names)">POST</button></td>
</tr>
</tbody>
我想要做的是單擊按鈕“ POST” name.name發布到服務器。 我嘗試了函數postfunction(),但是它沒有發布到服務器,在我的控制台中一切正常,但是name.name沒有發布到服務器。
您嘗試發送的$scope.name
並未在任何地方定義。
你要更改names
這里為name
:
...
<td><button ng-click="postfunction(name)">POST</button></td>
...
並在您的后postfunction
溝$scope.name
執行此操作(也請使用.then而不是.success,不建議使用.success):
$scope.postfunction = function(name) {
$http({
method: 'POST',
url: 'serwerUrl' ,
data: {"name": name},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.then(function(data){
console.log('data success');
});
}
您確定API的內容類型為application/x-www-form-urlencoded
嗎? 最好使用Angular默認的application/json
? 如果必須對數據進行urlencode,請使用$ httpParamSerializerJQLike服務 。
.controller(function($http, $httpParamSerializerJQLike) {
//...
$http({
url: myUrl,
method: 'POST',
data: $httpParamSerializerJQLike(myData),
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.