我有一个javascript代码,在按下链接时发出帖子请求,
$(document).on("click", "#name", function () {
try{
var userid= $(this).data('id');
var form = document.createElement('form');
form.setAttribute('method', 'post');
form.setAttribute('action', '/biz/getadmindsr');
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "userid");
hiddenField.setAttribute("value", userid);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
catch(err)
{
alert('Inside excpetion'+err.message);
}
});
然而,它正在调用的弹簧控制器如下,
@RequestMapping(value="/get_admindsr_employeelist", method = RequestMethod.GET)
public String getdsr_page(ModelMap model)
预期的控制器如下,
@RequestMapping(value="/getadmindsr", method = RequestMethod.POST)
public String getdsr(ModelMap model,@RequestParam("userid") String userid)
当我通过邮递员发出请求时,第二个控制器被正确调用,但是当通过javascript片段调用时,它会调用第一个控制器。
答案 0 :(得分:0)
一个可能的原因可能是在创建和提交表单之前,已点击链接。
你应该通过替换:
来防止这种情况 $(document).on("click", "#name", function () {
使用:
$(document).on("click", "#name", function (event) {
event.preventDefault();
// ...