0

我正在使用 mean.io,我在其中创建了一个类似于文章的新包。在其中,我创建了一个图像(使用 canvas.toDataURL()),现在想将其发送回服务器,但有问题;有人可以建议吗?

更具体地说,我到目前为止所做的如下:

在 newpackages/public/controllers/newpackages.js //创建图像后,我将它传递给 sendImgToServer() 方法

'use strict';

angular.module('mean.newpackages').controller('NewpackagesController', ['$scope','$http',...,
function($scope, $stateParams, $http, ... Newpackages){

...

$scope.sendImgToServer = function(image){
    console.log(image);  //data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAARwCAYAAAB…
    var postURL = '/newpackages/saveImg';
    var fd = new FormData();
    fd.append("image", image);

    $http.post(postURL, fd,{
        headers:{'Content-Type':undefined},
        transformRequest:angular.identity
    })
    .success(function(){
    })
    .error(function(){
    });
};

在 newpackages/public/routes/newpackages.js

...

$stateProvider
  ...
  .state('save newpackage image', {
    url:'/newpackages/saveImg',
    resolve:{
      loggedin:checkLoggedin
    }
  });
}

在 newpackages/server/controllers/newpackages.js

...

exports.saveImg = function(req, res){
    console.log('save img');
};

最后,在 newpackages/server/routes/newpackages.js

...

app.route('/newpackages/:fd')
    .post(newpackages.saveImage);

...

在控制台中,我收到的错误消息是:

TypeError: undefined is not a function
  at Scope.$scope.sendImgToServer

先感谢您。

4

1 回答 1

0

您得到的错误是因为您在方法 sendImgToServer 中将内容类型标头设置为未定义。

headers:{'Content-Type':undefined}

设置适当的标题,例如:

headers:{'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
于 2014-11-25T00:46:54.820 回答