ajax POST для сервлета: нулевой параметр - PullRequest
0 голосов
/ 27 июня 2011

Я работаю над Flex-приложением, и мне нужно вызвать некоторые данные синхронным методом. После некоторых исследований я нашел код от Adobe, который использует ajax и внешний интерфейс. Это здорово.

код от Adobe

Когда я отправляю данные методом GET, сервлет читает параметры и выводит некоторую информацию (для проверки). Но когда я отправляю данные методом POST, сервлет получает запрос, но параметры исчезают.

примеры:

SERVLET - GET

System.out.println("recieved GET");
Map attrib = request.getParameterMap();
System.out.println("parameters: " + request.getParameterMap().size());
for(Object key: attrib.keySet()){
    System.out.println("key: "+key.toString() +" - "+attrib.get(key));
}

SERVLET - POST

System.out.println("recieved POST");
Map attrib = request.getParameterMap();
System.out.println("parameters: " + request.getParameterMap().size());
for(Object key: attrib.keySet()){
    System.out.println("key: "+key.toString() +" - "+attrib.get(key));
}

FLEX GET METHOD

var ajax:Ajax = new Ajax(DATABASEURL + "?username=test);
ajax.requestType = AjaxRequestType.GET;
ajax.async = false;
var result:String = ajax.send();

напечатано сервлетом:

recieved GET
parameters: 1
key: username - [Ljava.lang.String;@4977e2

МЕТОД ПОЧТОВОГО ПОЧТЫ

var ajax:Ajax = new Ajax(DATABASEURL);
ajax.requestType = AjaxRequestType.POST;
ajax.async = false;
var result:String = ajax.send("username='test'");

напечатано сервлетом:

recieved POST
parameters: 0

Что не так?

если запрос отправлен, почему сейчас нет параметра?

Если кто-то может мне помочь, это было бы замечательно, потому что я так много искал в Google, что Google мог заблокировать меня для спама.

edit: welcome не может быть напечатан ?? Итак ...

1 Ответ

0 голосов
/ 28 июня 2011

Все нормально, я нашел проблему. Это был код javascript со страницы Adobe .

Я добавил

xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");

до

xmlHttp.send(params);

и теперь у меня есть хороший ответ от сервлета ...

recieved POST
parameters: 1
key: username - [Ljava.lang.String;@1cebc9f

Довольно круто, что в этой ошибке не использовался flex с javascript, а отсутствовал только requestReader.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...