我想通过JavaScript从HTML页面向我的服务器发送二进制数据,但服务器接收到的不是相同的字节。接收到的字节似乎被转换为Unicode字符串,如下例所示:
xhr.open('POST', '/check', true);
xhr.setRequestHeader('cache-control', 'no-cache');
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send('\x41\xFE\x80');
服务器应该接收'Aþ€',但其接收到了A├¥┬Ç
。
我尝试了很多方法,如:
//xhr.overrideMimeType('text/plain; charset=iso-8859-1');
//xhr.setRequestHeader('Content-type', 'text/plain; charset=iso-8859-1');
//xhr.setRequestHeader('Content-type', 'application/xml; charset=UTF-8');
//xhr.overrideMimeType('text/plain; charset=x-user-defined');
//xhr.overrideMimeType('text\/plain; charset=x-user-defined');
在服务器端,我运行 plackup(http://localhost:5000/index.html),并且 $env->{'CONTENT_LENGTH'}
的值为5,因此服务器似乎确实收到了5个字节的 A├¥┬Ç
。
有没有什么提示可以帮助我接收原始二进制数据呢?