request.getParameter возвращает ноль в вызове ajax - PullRequest
0 голосов
/ 04 июня 2018

Я делаю ajax-вызов, используя jquery.

$.ajax({
    type: "POST",
    url: "/test",
    data: {"mykey":"test value"},
    success: function(appSubFtrResult){
        /**/
    },
    error: function(){
        /**/
    }
});

В сервлете / фильтре я не могу получить значения, используя request.getparameter("mykey");, который возвращает ноль.Вместо этого, если я использую request.getParameterNames() и повторю, как показано ниже, я смогу получить все данные и их значение.

System.out.println(request.getParameter("mykey")); // returns null
Enumeration<String> params = request.getParameterNames();
while(params.hasMoreElements()){
    String name = params.nextElement();
    String value = request.getParameter(name);

    System.out.println("::Request Params:: " + name + " = " + value);   //prints ::Request Params:: mykey = test value
}

Как это исправить?

1 Ответ

0 голосов
/ 04 июня 2018

Я думаю, что проблема может быть здесь:

data: {"mykey":"test value"},

Вам не нужно указывать имя параметра в кавычках:

data: {mykey:"test value"},

Затем в вашем сервлете попробуйте:

String key = request.getParameter("mykey");

Также стоит упомянуть, что вы можете сделать свой ajax следующим образом с помощью jquery (меньше строк):

var params = {mykey: "test value"};
$.post("/test", $.param(params), function(response) {
    // handle response here if you have one
});

РЕДАКТИРОВАТЬ:

Я только что протестировалВаш код и смог получить параметр без проблем (в Chrome).Таким образом, кавычки вокруг имени параметра не должны иметь никакого значения.Поэтому попробуйте сделать ваш ajax иначе, чем в моем примере, посмотрите, поможет ли это.

...