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

时间:2015-10-23 07:20:47

标签: javascript angularjs jsp

我编写了以下代码来发送$ 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" ReportColumnSelection.jsp中的JSON

request.getParameter("myData");

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

  

AngularJS版本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');
    }); 
};

1 个答案:

答案 0 :(得分:1)

$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();