Почему request.getParameter ("") возвращает ноль, используя jquery formdata - PullRequest
0 голосов
/ 20 мая 2018

Когда я пытаюсь получить свой параметр verifyCodeActual на сервере, результат равен null.

String code = request.getParameter("verifyCodeActual"); // This is null

Но я публикую этот параметр в теле, как вы можете видеть в chromeданные консоли:

консоль Chrome (форма данных)

Вот соответствующая часть серверного Java-кода:

Соответствующая часть серверного Java-кода

Вот запрос Ajax JS:

    var formData = new FormData();

    var verifyCodeActual = $('#j_captcha').val();

    formData.append("verifyCodeActual", verifyCodeActual);

    $.ajax({
        url : (isEdit ? editShopUrl : registerShopUrl),
        type : 'POST',
        data : formData,
        contentType: "application/x-www-form-urlencoded",
        cache: false,
        processData: false,
        success ...
        }
    });

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

В этом вам поможет

Клиент

$.ajax({
    url : (isEdit ? editShopUrl : registerShopUrl),
    type : 'POST',
    data : {
        verifyCodeActual : $('#j_captcha').val()
    },
    contentType: "application/x-www-form-urlencoded",
    cache: false,
    processData: false,
    success ...
    }
});

Контроллер

@RequestMapping(value = "/modifyshop", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> modifyShop(@RequestBody Object verifyCodeActual) throws Exception {

        System.out.println(verifyCodeActual);
}
0 голосов
/ 20 мая 2018

Я подозреваю, что это как-то связано с вашим Java-кодом, который даже не похож на сервлет.У вас там нет метода doPost.Какую IDE вы используете?

Вот как должен выглядеть ваш сервлет:

@WebServlet("/modifyShop")
public class ModifyShop extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public ModifyShop() {
        super();
    }

    protected void doPost(HttpServletRequest request,HttpServletResponse response){

        String code = request.getParameter("verifyCodeActual");
        System.out.println(code);

    }

}

Кроме того, поскольку вы используете Jquery, вы можете создавать ajax-методы с Jquery, которые, как правило, проще.Существует много разных способов отправки ajax-запросов с помощью Jquery, и я настоятельно рекомендую проверить ответ BalusC здесь о как использовать сервлеты и Ajax .

Вот пример, где вы можете сделать это вручную:

var verifyCodeActual = $('#j_captcha').val();
var params = {
    verifyCodeActual: verifyCodeActual
};

$.post("modifyShop", $.param(params), function(response) {
   //handle response here if you have any
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...