Javascript 双重请求

Javascript 双重请求,javascript,http,angularjs,Javascript,Http,Angularjs,以下是示例设置: var editor = angular.module("editor",['ngResource']); editor.factory("Provider",function($resource){ return $resource('/api/test/1').get(); }) function ctrl($scope,Provider){ $scope.sections = Provider; } 我的问题是,在firebug中,我看到有两个GET

以下是示例设置:

var editor = angular.module("editor",['ngResource']);
editor.factory("Provider",function($resource){
    return $resource('/api/test/1').get();
})

function ctrl($scope,Provider){
    $scope.sections = Provider; 
}
我的问题是,在firebug中,我看到有两个GET请求被发送:一个在/api/test/1,另一个在/api/test/1/


有什么想法可能导致这种情况吗?

为了完整起见,我相信
$http
会在文件夹结构中“短路”,只需抓住您指向的资源,即可在项目中访问,而
$resource
则面向与外部源通信,通常是外部RESTful api。在我实现这一点的应用程序中,我经常定义一个变量,我的各种
$resource
定义可以在其中访问它,正如您将在我定义的变量
API
中看到的那样

在这种情况下,还显示您正在将
1
作为某种id传递

var API = 'http://localhost\\:#####/api/';

editor.factory('Provider', function ($resource) {
    return $resource(API + 'test/:id', { id: '@id' }, { });
});
然后实施

function ctrl($scope, Provider){
    var myVarToPass = 1;

    Provider.get({ id: myVarToPass }, function (result) {
        //single call here as soon as controller loads
    });
}

我发现在
/1
之后添加
/#
就解决了问题

更改:

return $resource('/api/test/1')....
致:


您正在创建多个ctrl实例吗?还有一个语法错误,代码中缺少一个。如果使用了多个此类控制器,则将为每个控制器调用函数,在本例中,该函数调用$resource上的get()。如果需要单个实例,请使用服务而不是工厂。否,我使用的是“ctrl”“只有一次,只是用服务尝试了一下,但都是一样的。你能用它制作一个JSFIDLE还是一个plunkr来显示实际的问题?”?到目前为止,我只在我的服务中使用了$http,但没有看到任何双重调用行为。。。虽然我大部分时间都在Chrome上测试,但事实上$http成功了,谢谢!
return $resource('/api/test/1/#')....