嗨我想在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个表做了同样的事情并且没有问题这个部分有问题。
答案 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参数附加该字符串。