繁体   English   中英

Angular $ resource方法PUT获取在服务器上找不到404

[英]Angular $resource method PUT gets 404 not found on server

我正在使用Angular $ resource创建我的自定义PUT方法。 但是,当我尝试在NodeJs中访问相同的REST URL时,它说找不到我发送的adreess。

这是我的工厂:

(function (angular) 
{
angular.module('projekat.resource',['ngResource'])
.factory('ProjekatEntry', ["$resource", function($resource)
{
    var ProjEntry = $resource('/api/projekat/:_id',
    {_id:'@_id'},
    {
        obrisiKorisnika: 
        {
            method: 'PUT',
            url: 'api/projekat/:_id/:korId'
        }

    });
    return ProjEntry;

}]);
}(angular));

这是我的角度代码:

$scope.obrisiUsera = function (korisnik, index) 
    {   
            $scope.projUser.$obrisiKorisnika( {'korId': korisnik._id});
            $scope.projUser.korisnici.splice(index, 1);
            $scope.korEntries.push(korisnik);
    }

这是我的路由器:

.put('/:id/:korId', function(req, res, next) {
 console.log("dasdasasdasds");
 Korisnik.findOne({
"_id": req.params.korId
}, function(err, korisnik) {
if (err)
{
  console.log(err);
  next(err);
}
Korisnik.findByIdAndUpdate(korisnik._id, {$pull:{"projekti":req.params.id}}, function (err)
{
  if(err)
  {
    console.log(err);
    next(err);
  }
});
Projekat.findByIdAndUpdate(req.params.id, {$pull:{"korisnici":korisnik._id}}, function (err, entry) {
  if (err)
  {
    console.log(err);
    next(err);
  }
  res.json(entry);
   });
  });
})

但是我认为服务器端不是问题,因为它永远不会到达服务器,这就是为什么错误说:

PUT http:// localhost:8080 / slickTask / api / projekat / 5744b8802d28307020d8cc40 / 5744ba262d28307020d8cc4c 404(未找到)

我的路由器很好,现在可以正常使用POST,PUT,GET等所有功能,但是当我尝试将PUT方法与另一个参数一起使用时,它在服务器端没有到达我的网址。

最终我发现了问题所在。 工厂ProjekatEntry方法中的PUT的URL必须为

网址:“ / api / projekat /:_ id /:korId”

在网址开头加上斜线。 这就是为什么服务器端从未受到攻击的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM