使用AngularJS处理HTTP POST请求
我正在开发一个jsp,它向servlet发送POST请求。我希望以原始有效负载而不是键值形式编写内容使用AngularJS处理HTTP POST请求,angularjs,Angularjs,我正在开发一个jsp,它向servlet发送POST请求。我希望以原始有效负载而不是键值形式编写内容 var addItemApp = angular.module('addItem',[]); addItemApp.controller('addItemCtrl', function($scope, $http){ $scope.addItemBnClicked = function(){ var rqst = $http.post('http://127.0.0.1:
var addItemApp = angular.module('addItem',[]);
addItemApp.controller('addItemCtrl', function($scope, $http){
$scope.addItemBnClicked = function(){
var rqst = $http.post('http://127.0.0.1:8180/JSP/ws', "This is a test content");
rqst.success(function(rspnData, status, headers, config){
alert("Status: " + status);
});
}
});
在服务器端检查时,我发现负载中没有任何内容。请帮忙,谢谢^^
%%%%%%%%%%%%%%%编辑%%%
我使用以下代码来获取有效负载
String line = "";
String rqstRawBody = "";
while((line = servletRqst.getReader().readLine()) != null){
rqstRawBody += line;
}
System.out.println("rqstRawBody: " + rqstRawBody);
rqstRawBody
最后是一个空字符串。我相信上面的java代码是可以的,因为对于使用chrome app Rest客户端发送的请求,我正确地获得了原始负载。您应该这样做。对于POST请求,默认情况下Angular将其设置为application/json
var config = { headers: { 'Content-Type': 'text/plain' } };
var data = { someKey: 'SomeValue'};
$http.post('/url', data, config).then(...);
也可以将其设置为所有请求的默认值,如文档所示:
module.run(function($http) {
$http.defaults.headers.common['Content-Type']= 'text/plain'
});
在服务器中接收哪种类型的数据时,该功能正常side@chunchiuChan查看编辑,它缺少
数据
选项。