栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

通过HTTP在JavaScript中发送二进制数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过HTTP在JavaScript中发送二进制数据

默认情况下,jQuery序列化数据(传递的

data
属性)-这意味着将
0xFD008001
数字 作为“ 4244668417” 字符串
(10个字节,而不是4个)传递给服务器,这就是服务器将其视为未按预期方式处理的原因。

有必要通过将

$.ajax
property 设置
processData
为来防止这种行为
false

默认情况下,作为对象传递给data选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,以适合默认的内容类型“ application /
x-www-form-urlenpred” 。如果要发送DOMdocument或其他未处理的数据,请将此选项设置为false。

……但这只是整个故事的一部分:

XMLHttpRequest.send
实现有其自身的局限性。我想,这就是为什么最好的选择是使用
TypedArrays 制作自己的序列化
程序

// Since we deal with Firefox and Chrome only var bytesToSend = [253, 0, 128, 1],    bytesArray = new Uint8Array(bytesToSend);$.ajax({   url: '%your_service_url%',   type: 'POST',   contentType: 'application/octet-stream',     data: bytesArray,   processdata: false});

或根本不使用jQuery:

var bytesToSend = [253, 0, 128, 1],    bytesArray = new Uint8Array(bytesToSend);var xhr = new XMLHttpRequest();xhr.open('POST', '%your_service_url%');xhr.setRequestHeader('Content-Type', 'application/octet-stream');xhr.send(bytesArray);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/409820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号