从角网址请求隐藏参数

时间:2017-09-13 14:42:57

标签: angularjs http spring-mvc post

我有这个角度范围功能,它负责发送POST请求。

 $scope.addStuff = function(p1, p2) {
        $http.post('stufflist/addStuff/' + p1 + '/' + p2, 
                   {}, 
                   {params: {'value': stuffValue}}
                  ).then(function successCallback(response) {

                   }, function errorCallback(response) {

                   });
                 };

然后我有了这个映射(我正在使用Spring-mvc):

@RequestMapping(value = "/addStuff/{p1}/{p2}", method = RequestMethod.POST)
    public @ResponseBody void addStuff(@PathVariable("p1") String p1, @PathVariable("p2") String p2, @RequestParam(value = "value") String stuffValue) {
        stuffService.addStuff(p1, p2, stuffValue);
    }

这是按预期工作的。但是,在浏览器控制台中分析POST请求URL时,我看到:

http://localhost:8080/my-project/stufflist/addStuff/p1/p2/file?value=my_giant_string_which_i_want_to_hide_from_this_url

如何在POST请求网址中隐藏此参数?

2 个答案:

答案 0 :(得分:1)

$http({
        url: 'stufflist/addStuff/' + p1 + '/' + p2, 
        method: "POST",
        data: {'value': stuffValue}
    })
    .then(function(response) {
            // success
    }, 
    function(response) { // optional
            // failed
    });

执行类似的操作,而不是使用$http.post

答案 1 :(得分:0)

这解决了这个问题。

$http({
            url: 'stufflist/addStuff/' + p1 + '/' + p2, 
            method: 'post',
            data: $.param({value: stuffValue}),
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}

      }).then(function successCallback(response) {

         }, function errorCallback(response) {

         });