我有一个 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 片段调用时,它会调用第一个控制器。
一个潜在的原因可能是在创建和提交表单之前点击了链接。
您应该通过替换来防止这种情况:
$(document).on("click", "#name", function () {
和:
$(document).on("click", "#name", function (event) { event.preventDefault(); // ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句