AS3 URLRequest相关,浏览器请求头MIME类型引发的问题

最近工作遇到个问题,就是在air客户端中模拟登录某OTA站点获取到订单数据后,然后处理新订单时会出错,错误提示“不存在的订单号”,查询了好几天原因才发现竟然是我发送请求时的contentType不对。AS3中的URLrequest的contentType属性是data 属性中内容的 MIME 内容类型,其默认值是 application/x-www-form-urlencoded,但是之前有发送类似的请求,其mime类型为json格式,然后就没有注意到这个问题,一直以jsontype的格式发送,application/json;charset=UTF-8。导致浪费很多时间。还好终于发现并解决了。
发送 POST 请求时,contentType 和 data 属性的值必须正确对应。contentType 属性的值表示服务器如何解释 data 属性的值。
如果 data 属性的值是一个 URLVariables 对象,则 contentType 的值必须是 application/x-www-form-urlencoded。
如果 data 属性的值为其他类型,则 contentType 的值应表示将要发送的 POST 数据的类型(该数据为 data 属性的值中包含的二进制或字符串数据)。
对于 FileReference.upload(),请求的内容类型将自动设置为 multipart/form-data 并忽略 contentType 属性的值。
在 Flash Player 10 和更高版本中,如果使用包含上载(由 POST 体内的“content-disposition”标头中的“filename”参数表示)的 multipart Content-Type(例如“multipart/form-data”),则 POST 操作会受应用于上载的安全规则的约束:
必须执行 POST 操作以响应用户启动的操作(如鼠标单击或按键)。
如果 POST 操作是跨域的(POST 目标与发送 POST 请求的 SWF 文件不在同一台服务器上),则目标服务器必须提供一个允许跨域访问的 URL 策略文件。
另外,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值