post [object%20Object] 404找不到angularjs

时间:2015-12-08 02:37:55

标签: angularjs angularjs-factory

嗨我想在mi表中插入一行,但总是会遇到这个问题:

  

POST URL / api / presentaciones / [object%20Object] 404(Not Found)

我在控制器中有一个表格和ng-submit =“savePresentacion”:

.controller('newPresentacionController', function ($scope, Presentacion, Categoria) {
             $scope.categorias ={};
             var vm = this;
             var presentacionData = {};
             $scope.savePresentacion = function() {
                 presentacionData = {
                     nombre : $scope.nombre,
                     descripcion : $scope.descripcion,
                     tipo_presentacion : $scope.tipo_presentacion,
                     usuarios_id : $scope.usuarios_id,
                     categorias_id: $scope.categorias_id,
                     longitude: self.myMarker.position.lng(),
                     latitud: self.myMarker.position.lat(),
                     zoom: 13
                 };
                 Presentacion.crearPresentacion(presentacionData).success(function (datos) {

                 });
             };
}
presentacionService中的

有这个:

(function () {
    angular.module('presentacionService', [])
        .factory('Presentacion', function ($http) {
            var presentacionFactory = {};
            presentacionFactory.crearPresentacion = function(presenData) {
                console.log(presenData);
                return $http.post('/api/presentaciones/' + presenData);
            };
            return presentacionFactory;
        });
})();

之后给出了问题。我对2个表做了同样的事情并且没有问题这个部分有问题。

2 个答案:

答案 0 :(得分:4)

[object Object]是默认情况下呈现JavaScript对象的方式。您的console.log(presenData)同样会输出[object Object]

鉴于您将presenData定义为JSON对象,我猜你想在POST中完整地传递它。

改变这个:

return $http.post('/api/presentaciones/' + presenData);

到此:

return $http.post('/api/presentaciones/', presenData);

请注意逗号。这将传递presenData JSON对象作为请求的主体。

我还会将日志记录语句更改为console.log(JSON.stringify(presenData)),这会将JSON表示呈现给控制台。

答案 1 :(得分:0)

您的问题是您的presenData是一个对象。当你将它附加到字符串时,如下所示: '/api/presentaciones/' + presenData

Javascript正在将对象转换为字符串,该字符串由[object Object]。

表示

您需要确定presenData上的哪个属性代表您尝试访问的端点。例如,如果presenData具有.id,则您希望使用.id参数附加该字符串。