首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于查询参数,角JS表单数据post到泽西方法为null

对于查询参数,角JS表单数据post到泽西方法为null
EN

Stack Overflow用户
提问于 2015-01-02 17:01:19
回答 1查看 969关注 0票数 0

我只是在做一些测试,这里有一些Javascript,它使用角JS发布一些表单数据:

代码语言:javascript
复制
<!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>

以下是将数据发布到的方法:

代码语言:javascript
复制
    @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对值进行编码,但这正是我测试它的方式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-02 17:42:47

如果希望以查询参数的形式接收数据(即所请求的URL将类似于http://localhost:8080/CourseService/courseService/newcourse?name=123&duration=456&fee=789),则必须使用params选项而不是指定请求主体的data发送数据:

代码语言:javascript
复制
var request = $http({method: 'POST', url: url,
    params:{name: courseData.name, duration: courseData.duration, fee: courseData.fee}});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27745692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档