AngularJS:ArrayBuffer的POST请求有效负载为空

时间:2015-06-18 17:10:53

标签: angularjs angularjs-http

我尝试使用POST使用ArrayBuffer发送一些字节,但似乎请求有效负载始终为空。这是一些代码片段:

var buffer = new ArrayBuffer(10);
var dataView = new DataView(buffer);
dataView.setInt32(0, 0x1234ABCD);
var request = {
  method: 'POST',
  url: 'url',
  headers: {'Content-Type': 'application/octet-stream'},
  data: buffer,
  responseType: 'arraybuffer'
};
$http(request)
  .success(function(data, status, headers, config) { ... })
  .error(function(data, status, headers, config) { ... });

1 个答案:

答案 0 :(得分:0)

正如我评论的那样,要发送ArrayBuffer,你需要直接使用XHR2(似乎AngularJs不支持它)。以下是一些如何操作的代码:

var buffer = new ArrayBuffer(10);
var dataView = new DataView(buffer);
dataView.setInt32(0, 0x1234ABCD);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'url', true);
xhr.onload = function(e) {
  console.log('data received');
};
xhr.send(buffer);

关于XHR2的更多细节:http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-string,希望这对那些也感到困惑的人有所帮助:)