我有这个角度范围功能,它负责发送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请求网址中隐藏此参数?
答案 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) {
});