0
我试图将现有的AJAX应用移植到Flex,并且无法将发送给后端服务的参数编码。Flex阻止使用HTTPRequest参数的URL编码
当试图执行删除联系人的动作,现有的应用程序执行POST,发送以下内容:(与萤火虫捕获)
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Ë在发送它们之前对params进行编码,并且从服务器返回错误。
如何禁用此编码,并获取按原样发送的参数,而无需URL编码?
我觉得contentType
属性应该是关键 - 但没有定义的值工作。
此外,我考虑写一个SerializationFilter
,但这似乎是矫枉过正 - 有没有更简单的方法?