加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS中为blob发出POST请求

发布时间:2020-12-17 17:00:33 所属栏目:安全 来源:网络整理
导读:我有以下ajax代码,它向服务器发出blob的POST请求,并打印返回的数据. function upload(blob){ var formData = new FormData(); formData.append('file',blob); $.ajax({ url: "http://custom-url/record.php",type: 'POST',data: formData,contentType: false
我有以下ajax代码,它向服务器发出blob的POST请求,并打印返回的数据.

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中做同样的事情?

解决方法

由于 FormData API的 base64 encoding具有额外的33%开销,因此直接发送 blob而不是附加 blob至 FormData更为有效.

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读