Firefox3中使用XMLHttpRequest(Ajax)发送二进制POST数据的简易调试法

本文介绍了在Firefox3中如何调试使用XMLHttpRequest(Ajax)发送二进制POST数据的过程。通过WinHex转换二进制数据为GREP Hex格式,结合脚本和Firefox的sendAsBinary方法,可以实现数据的正确发送。此方法适用于Firefox3,但sendAsBinary是非标准方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XHR(XMLHttpRequest)发送POST文本数据的情况还算常见,直接调用“xhr.send(data)”即可。

但是对于二进制数据的处理稍微复杂。

 

不过在Firefox3中,可以借助下面的方法来调试ajax发送post二进制数据:

相关脚本代码:

 

辅助工具:WinHex 15.6

 

步骤:

1.用WinHex打开二进制数据文件,或者直接在WinHex中编辑二进制数据也可。

2.选择WinHex菜单中的“编辑(Edit)”→“复制(Copy)”→“GREP Hex”,将二进制数据以“/xNN”的格式复制到剪贴板。

3.运行上面的脚本代码,根据提示输入刚刚复制的数据即可。

可以结合Firebug调试相关请求数据。

 

说明:

因为二进制数据不方便表示,所以先借助WinHex将数据转换为“GREP Hex”文本,输入到脚本中。

脚本将“GREP Hex”解析为JS内部保存的双字节字符串,此字符串的特点就是,每个字符的低位字节与二进制的每个字节一一对应。

在FF中,“xhr.send(data)”方法的参数“data”可以是一些特定对象,或者是一个字符串。

对于字符串,它会按照某种编码(经测试可知貌似是UTF-8)转换为二进制,这会无法还原为原始的二进制数据。

不过FF另外提供了一个“xhr.sendAsBinary(data)”方法,此方法接受一个字符串做参数,它将每个字符的高位字节舍弃,只保留低位字节,这样就能还原为我们的原始数据了。

 

此“工具”实现还算简单,不过使用还是稍微麻烦。

进一步深入的话,貌似可以实现通过文件对话框选取文件直接读取其内容并发送,不过实现就更麻烦了。

 

PS:“xhr.sendAsBinary(data)”是非标准方法,所以只能在FF3中使用。

参考:

https://developer.mozilla.org/en/XMLHttpRequest#sendAsBinary()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值