javascript调用错误的弹簧方法

时间:2017-03-16 11:15:44

标签: javascript spring jsp spring-mvc

我有一个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片段调用时,它会调用第一个控制器。

1 个答案:

答案 0 :(得分:0)

一个可能的原因可能是在创建和提交表单之前,已点击链接。

你应该通过替换:

来防止这种情况

$(document).on("click", "#name", function () {

使用:

$(document).on("click", "#name", function (event) { event.preventDefault(); // ...