我使用angular和node.js API上传文件。
我正在关注this链接以上传文件。
在本教程中,我们需要设置标题headers: {'Content-Type': undefined}
另一方面,我需要为authentication token
设置标头值。为此,我将默认标头值设置为$http.defaults.headers.common.Authorization = $cookieStore.get('token');
现在当我上传文件时,出现错误,即
Error: Can't set headers after they are sent.
现在请让我知道如何解决这个问题.. 或任何实现此目的的解决方案。 感谢
以下是文件上传的服务和控制器
app.service('fileUpload', ['$http','$cookieStore', function ($http, $cookieStore) {
this.uploadFileToUrl = function(file, uploadUrl){
var token = $cookieStore.get('token') ;
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {transformRequest: angular.identity,headers: {'Content-Type': undefined} })
.success(function(res){
})
.error(function(){
});
}
}]);
app.controller('csvCtrl', function($scope, fileUpload){
$scope.importcsv=function(){
var file=$scope.myFile;
var uploadUrl="/api/parsecsv";
fileUpload.uploadFileToUrl(file, uploadUrl);
}
});
答案 0 :(得分:0)
这应该让你能够应用标题:
app.service('fileUpload', ['$http', '$cookieStore', function ($http, $cookieStore) {
this.uploadFileToUrl = function (file, uploadUrl) {
var token = $cookieStore.get('token');
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd,
{
transformRequest: angular.identity,
headers: {
'Content-Type': undefined,
'Authorization': token
}
})
.success(function (res) {
})
.error(function () {
});
}
}]);
一旦开始工作,您可以使用interceptor设置默认标头。