我正在尝试解码JavaScript中的种子文件,长度不太好。
path = "file.torrent";
$.ajax({
url: path,
success: function (data) {
console.log(data.length);
}
});
我在PHP中做了同样的事情,长度不同。
$f=file_get_contents($filename, FILE_BINARY);
var_dump(strlen($f));
我认为ajax方法没有返回二进制文件。
我怎么能得到一些类似的东西,file_get_contents($filename, FILE_BINARY)在JavaScript?
您可以将processData
开关设置为false:
$.ajax({
url: path,
processData: false,
success: function (data) {
console.log(data.length);
}
});
现在,jQuery不会尝试智能并根据服务器返回的Content-Type响应头自动解析数据,但它会将其作为原始数据传递给成功回调。显然,在javascript中处理二进制数据并不是这种语言设计的目的。对于HTML5,有一些不错的添加。
还值得一提的是,调用.length
从服务器收到的一些二进制数据可能没有多大意义,机会是你会得到一个javascript错误,因为这个属性没有定义。