这是我的Angular Code(获取请求工作正常但不是Post请求。我在Servlet端的carrier_id中收到null)。
app.js
var app = angular.module( "admin" , []);
app.config(function ($httpProvider){
// set the Content-Type header globally
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
// define ajax call behavior globally
// set up global transformRequest function
$httpProvider.defaults.transformRequest = function(data){
if (data === undefined) {
return data;
}
return $.param(data);
};})
app.controller('mainController', function($scope, $http, $window){
$scope.fileList =[];
$scope.selectedFile = null;
$http({
method: 'GET',
url :'hrp/filelist'
}).success( function(data,status,headers,config){
data.file_list.splice(0, 1) // to remove header row
$scope.fileList=data.file_list
}).error(function(){
alert("error")
})
$scope.submitFile = function(selectedFile){
console.log("happy" + selectedFile);
$http({
method: 'POST',
url: 'hrp/carrierInfo',
data: {carrier_id: selectedFile}
}).success(function(data){
alert(data.carrier_id + " & " + data.method_name)
}).error(function(){
alert("errors")
})
}});
Servlet代码的一部分:
String carrier_id = (String)request.getAttribute("carrier_id");
response.setContentType("application/json");
但它是空的。
答案 0 :(得分:1)
您可能需要设置内容类型:
尝试使用form-urlencoded
$http({
method: 'POST',
url: 'hrp/carrierInfo',
data: {carrier_id: selectedFile},
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
}).then(function(result) {
console.log(result);
}, function(error) {
console.log(error);
});
并尝试application / json
$http({
method: 'POST',
url: 'hrp/carrierInfo',
data: {carrier_id: selectedFile},
headers: {
'Content-Type': 'application/json'
}
}).then(function(result) {
console.log(result);
}, function(error) {
console.log(error);
});
查看服务器是否获得不同的结果