Angular ngResource处理404 api错误

时间:2015-02-21 17:00:14

标签: ruby-on-rails ajax angularjs api angular-resource

我有一个Rails API

  

实施例。 example.com/v1/portfolio / {{id}}

我正在使用AngularJS ngResource来处理get。

的数据
myAppServices.factory('Portfolio', ['$resource', function($resource){
    return $resource('api/v1/portfolios/:id/', { id:'@id'}, {
        query: {
            method:'GET', 
            params:{id:'@id'},
            isArray:true
        }
    });
}]);

如果API没有条目

,如何处理未找到的404错误
  

实施例。 example.com/v1/portfolio/blabla

我的意思是我如何制作404就像你输入http://www.google.com/sdfa时检查你会发现的网络状态代码404.

有关更多信息,请使用Prerender.io服务为搜索引擎呈现网站。

2 个答案:

答案 0 :(得分:2)

你可以像这样使用$ promise:

var resource = $resource('api/v1/portfolios/:id/');

resource.get({id: 123}).$promise.then(function(todo) {
   // success
}, function(errResponse) {
   // handle 404 here
});

答案 1 :(得分:1)

您应该使用prerender-status-code元标记将404返回给抓取工具。文档在这里:https://prerender.io/documentation/best-practices

基本上,如果页面应该向抓取工具返回404,则只需添加到页面。 Prerender.io将检测该状态代码并将其返回给爬虫而不是200。

如果您对此有任何其他疑问,请随时发送电子邮件至support@prerender.io。我们很乐意提供帮助!