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

找不到post[object%20Object]404 angularjs,angularjs,angularjs-factory,Angularjs,Angularjs Factory,您好,我试图在mi表中插入一行,但始终遇到以下问题: POST URL/api/presentaciones/[object%20Object]404(未找到) 我有一个表单,控制器中有ng submit=“savePresentacion”: .controller('newPresentacionController', function ($scope, Presentacion, Categoria) { $scope.categorias ={};

您好,我试图在mi表中插入一行,但始终遇到以下问题:

POST URL/api/presentaciones/[object%20Object]404(未找到)

我有一个表单,控制器中有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;
        });
})();

在此之后给出问题。我对另外两个表也做了同样的处理,没有问题,只是这部分有问题。

你的问题是你的数据是一个对象。将其附加到字符串时,如下所示:
'/api/presentaciones/'+presensada

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


您需要确定PreSenda上的哪个属性表示您试图访问的端点。例如,如果presensada有一个.id,您可能希望在字符串中附加.id参数。

[object object]
是默认情况下呈现JavaScript对象的方式。您的
console.log(presensada)
将类似地输出
[对象]

假设您将
presensada
定义为一个JSON对象,我猜您希望在
POST
中完整地传递它

更改此项:

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

return $http.post('/api/presentaciones/', presenData);
注意逗号。这将传递
presensada
JSON对象作为请求主体


我还将日志语句更改为
console.log(JSON.stringify(presensada))
,这将把JSON表示形式呈现给控制台。

是的,现在可以工作了,谢谢兄弟,我真的看不到它。工作了两天,我累了。