angularjs $ http post不发送数据
问题描述:
我对我的下面的角码感到有点沮丧,因为它不会将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});
});
};
答
只是通过你的数据对象是这样的:
$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,您可能也可以移除您获得的结果的字符串化。
+0
我有另一个问题 - XMLHttpRequest无法加载http://127.0.0.1:8080/book。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。原因'http:// localhost:63342'因此不被允许访问。我已经修复使用此链接:http://*.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource –
答
你并不需要运行JSON.stringify
或$.param
,只需直接传递对象$http.post()
。 Angular为您创建JSON。
答
我认为$http
不发送stingifyed的数据。
尝试
$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});
});
};
答
数据更改为以下。它应该工作
var data = $.param({
'name': $scope.bookName,
'isbn': $scope.isbn,
'author': $scope.authorName,
'pages': $scope.pages
});
你得到的错误是什么? –
你在控制台中得到什么?你在哪里得到错误?你能够在成功回调后访问成功数据吗? –