AngularJS:获取$http.在JSP中发布数据

AngularJS: Get $http.post data in JSP

本文关键字:布数据 数据 JSP 获取 http AngularJS      更新时间:2023-09-26

我编写了下面的代码来发送$http。post请求

$http({
    url: '/OA_HTML/ReportColumnSelection.jsp',
    method: 'POST',
    data: JSON.stringify({myData : $scope.reportColumns}),
    headers: {'Content-Type': 'application/json;charset=utf-8'}
  })
  .success(function(response){
    $scope.viewColumns = response.columnData;
  })
  .error(function(response){
    //Error Log
    console.log('Inside saveReportColumns Error');
  });

现在的问题是我无法获得"myData"JSON在ReportColumnSelection.jsp

request.getParameter("myData");

如果我做错了什么,请告诉我。

AngularJS Version 1.4.7

保存报表列的代码:
$scope.saveReportColumns = function () { 
        console.log('Inside saveReportColumns'); 
        $http({ url: '/OA_HTML/eis/jsp/reporting/reports/newreport/columnselection/EISRSCReportColumn‌​SelectionAM.jsp', 
        method: 'POST', 
        data: JSON.stringify({myData:$scope.reportColumns}), 
        headers: {
            'Content-Type': 'application/json;charset=utf-8'
        } 
    }).success(function(response){}).error(function(response){ 
        //Error Log console.log('Inside saveReportColumns Error');
    }); 
};

$http服务的默认内容类型是application/json,您的JSP无法解析。

  • 将请求的内容类型更改为application/x-www-form-urlencoded;charset=utf-8(这可能有其他含义)

  • 读取它作为流,如下所示。

InputStream body = request.getInputStream();

保持内容类型不变可能是个好主意,而是读取请求体并使用库(如google/json

)对其进行解析。
BufferedReader reader = request.getReader();
Gson gson = new Gson();