Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AngularJS处理HTTP POST请求_Angularjs - Fatal编程技术网

使用AngularJS处理HTTP 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:

我正在开发一个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: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查看编辑,它缺少
数据
选项。