我对下面的角度代码感到有点沮丧,因为它没有将JSON数据发送到在同一台机器上运行的基于Spring Boot的微服务。请帮帮我!仅供参考,我是JavaScript世界的新手。
$scope.addBook = function() {
var data = $.param({
json: JSON.stringify({
name: $scope.bookName,
isbn: $scope.isbn,
author: $scope.authorName,
pages: $scope.pages
})
});
var config = {
headers : {
'Content-Type': 'application/json'
}
}
var result = $http.post('http://localhost:8080/book', data, config);
result.success(function (data, status, headers, config) {
$scope.result = JSON.stringify({data: data});
});
result.error(function (data, status, header, config) {
$scope.result = JSON.stringify({data: data});
});
};
答案 0 :(得分:2)
您不需要运行JSON.stringify
或$.param
,只需将对象直接传递给$http.post()
即可。 Angular为您创建了JSON。
答案 1 :(得分:1)
只需传递您的数据对象:
$scope.addBook = function() {
var data =
{
name: $scope.bookName,
isbn: $scope.isbn,
author: $scope.authorName,
pages: $scope.page
};
var config = {
headers : {
'Content-Type': 'application/json'
}
}
var result = $http.post('http://localhost:8080/book', data, config);
result.success(function (data, status, headers, config) {
$scope.result = JSON.stringify({data: data});
});
result.error(function (data, status, header, config) {
$scope.result = JSON.stringify({data: data});
});
};
您不需要对其进行字符串化。如果您的服务返回JSON,您可能也可以从结果中删除stringify。
答案 2 :(得分:0)
我认为$http
不会发送明确的数据。
尝试
$scope.addBook = function() {
var data = {
name: $scope.bookName,
isbn: $scope.isbn,
author: $scope.authorName,
pages: $scope.pages
};
$http.post('http://localhost:8080/book', data)
.success(function (data, status, headers, config) {
$scope.result = JSON.stringify({data: data});
})
.result.error(function (data, status, header, config) {
$scope.result = JSON.stringify({data: data});
});
};
答案 3 :(得分:0)
将您的数据更改为以下内容。它应该工作
var data = $.param({
'name': $scope.bookName,
'isbn': $scope.isbn,
'author': $scope.authorName,
'pages': $scope.pages
});