Я пытаюсь перенести существующее приложение AJAX на Flex, и у меня возникают проблемы с кодированием параметров, отправляемых в бэкэнд-сервис.
При попытке выполнить действие по удалению контакта, существующее приложениевыполняет POST, отправляя следующее: (захвачено с помощью firebug)
contactRequest.contacts[0].contactId=2c33ddc6012a100096326b40a501ec72
Итак, я создаю следующий код:
var service:HTTPService;
function initalizeService():void
{
service = new HTTPService();
service.url = "http://someservice";
service.method = 'POST';
}
public function sendReq():void
{
var params:Object = new Object();
params['contactRequest.contacts[0].contactId'] = '2c33ddc6012a100097876b40a501ec72';
service.send(params);
}
В firebug я вижу, что это отправлено следующим образом:
Content-type: application/x-www-form-urlencoded
Content-length: 77
contactRequest%2Econtacts%5B0%5D%2EcontactId=2c33ddc6012a100097876b40a501ec72
Flex - это URL-код, который кодирует параметры перед их отправкой, и с сервера возвращается ошибка.
Как отключить эту кодировку и получить отправленные параметрыкак есть, без кодировки URL?
Мне кажется, что ключом должно быть свойство contentType
, но ни одно из определенных значений не работает.
Кроме того, я подумал о написанииSerializationFilter
, но это кажется излишним - есть ли более простой способ?