首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AngularJS中对blob发出POST请求

如何在AngularJS中对blob发出POST请求
EN

Stack Overflow用户
提问于 2017-03-04 22:25:55
回答 1查看 5.3K关注 0票数 6

我有以下ajax代码,它向服务器发出对blob的POST请求,并打印返回的数据。

代码语言:javascript
复制
function upload(blob){

  var formData = new FormData();
  formData.append('file', blob);

  $.ajax({
    url: "http://custom-url/record.php",
    type: 'POST',
    data: formData,
    contentType: false,
    processData: false,
    success: function(data) {
          console.log(data);
    }
  });

}

我如何在AngularJS中做同样的事情?

EN

回答 1

Stack Overflow用户

发布于 2017-03-04 23:17:41

与将blob附加到FormData相比,直接发送blob更有效,因为base64 encodingFormData API具有额外的33%的开销。

代码语言:javascript
复制
var config = { headers: { 'Content-Type': undefined } };

$http.post(url, blob, config)
  .then(function (response) {
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;

    console.log("Success", status);
    return response; 
}).catch(function (errorResponse) {
    console.log("Error", errorResponse.status);
    throw errorResponse;
});

同样重要的是,将内容类型标头设置为undefined,以便XHR send method可以设置内容类型标头。否则,AngularJS框架将使用内容类型application/json覆盖。

有关详细信息,请参阅AngularJS $http Service API Reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42597106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档