您的位置:首页 > 产品设计 > UI/UE

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

2015-08-24 17:14 609 查看
最近工作遇到个问题,就是在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 操作受应用于上载的安全规则约束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: