如何在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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |