我只是在做一些测试,这里有一些Javascript,它使用角JS发布一些表单数据:
<!DOCTYPE html>
<html>
<head>
<title>Add a course</title>
<script type="text/javascript" src="../angular.js"></script>
</head>
<body ng-app="form">
<div ng-controller="formController">
<form class="course-form">
Name: <input type="text" ng-model="course.name" /><br />
Duration: <input type="text" ng-model="course.duration" /><br />
Fee: <input type="text" ng-model="course.fee" /><br />
<input type="button" ng-click="add(course)" value="Add course" />
</form>
</div>
<script>
angular.module('form', [])
.controller('formController', ['$scope', '$http', '$log', function($scope, $http, $log) {
$scope.add = function(courseData) {
var url = "http://localhost:8080/CourseService/courseService/newcourse";
var request = $http({method: 'POST', url: url, data:{name: courseData.name, duration: courseData.duration, fee: courseData.fee}});
request.success(
function(html) {
alert("it succeeded");
}
);
request.error(
function(html) {
alert("it didn't work");
}
);
};
}]);
</script>
</body>
</html>以下是将数据发布到的方法:
@POST
@Path("/newcourse")
@Consumes(MediaType.APPLICATION_JSON)
public Response newCourse(@QueryParam("name") String name, @QueryParam("duration") String duration, @QueryParam("fee") int fee) {
System.out.println(name+""+duration+""+fee);
return Response.status(200).build();
}问题是,当我打印这些值时,除了收费为0之外,它们都是空的,这有什么原因吗?我已经检查了正在发布的值,它们都很好并且已经被填充了。
我确实有其他方法或编写上述服务方法,例如使用@FormData,我也可以将路径更改为:‘(“/newcourse/{name}/{工期}/{fee}”)和URI对值进行编码,但这正是我测试它的方式。
发布于 2015-01-02 17:42:47
如果希望以查询参数的形式接收数据(即所请求的URL将类似于http://localhost:8080/CourseService/courseService/newcourse?name=123&duration=456&fee=789),则必须使用params选项而不是指定请求主体的data发送数据:
var request = $http({method: 'POST', url: url,
params:{name: courseData.name, duration: courseData.duration, fee: courseData.fee}});https://stackoverflow.com/questions/27745692
复制相似问题