【问题标题】:AngularJS $httpBackend - "No more request expected" errorAngularJS $httpBackend - “没有更多的请求”错误
【发布时间】:2016-09-28 22:28:15
【问题描述】:

似乎this 是有效的解决方案,展示了如何使用$httpBacked http://jsfiddle.net/EgMpe/8/

但是对于我来说:

路线

app.config(['$routeProvider', function($routeProvider) { $routeProvider.

    when('/',  {templateUrl: 'partials/user-list.html'}).

...

虚假服务:

app.run(function($httpBackend) {

        var users = [{"id":1,"name":"bob","email":"bob@bobs.com"}, {"id":2,"name":"bob2","email":"bob2@bobs.com"}]

        $httpBackend.whenGET('/rest/users').respond(function(method,url,data) {
            console.log("Getting users");
            return [200, users, {}];
        });
    });

..

真正的服务:

services.factory('Users', function($resource){
    return $resource('/rest/users', {}, {
        get:        {method: 'GET', isArray:true}
    });
});

当转到将我重定向到user-list.html 页面的“/”路由时,我遇到了错误

错误:意外请求:GET partials/user-list.html 没有更多请求 预期的 在 $httpBackend .../mysite/public/angular/libs/angular-1.2.0/angular-mocks.js:1060:9)

问题 1:httpBackend 是否会阻止执行任何其他 http 请求?

我尝试使用 passThrough 方法让 http 访问真正的服务器端:

$httpBackend.whenGET(/^\/mysite\//).passThrough();

但这无济于事。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    使用$httpBackend,您必须提前指定您要执行的所有请求。也许Mastering Web Application Development with AngularJS 的这段简短摘录会说明原因:

    verifyNoOutstandingExpectation 方法验证所有预期的 进行了调用(调用了 $http 方法并刷新了响应),而 verifyNoOutstandingRequest 调用确保被测代码没有触发 任何意外的 XHR 调用。使用这两种方法我们可以确保代码 在测试中调用所有预期的方法,并且只调用预期的方法。

    【讨论】:

      【解决方案2】:

      啊.. 抱歉,我的正则表达式有误:

      如果输入$httpBackend.whenGET(/partials/).passThrough();

      然后一切开始工作。

      所以,我得到了教训:别忘了把:passThrough(); 和正确的 RegEx 放在一起。

      【讨论】:

      • 嗨,我目前遇到了同样的异常。我看到你用passThrough() 函数解决了它。但是您知道它为什么要加载/获取 user-list.html page 吗?在您的测试中,您模拟了 $httpBackend.whenGET 那么为什么要加载 html 文件?
      • 据我所知,它正在加载页面,因为我在模拟 URL 中犯了错误,所以不是点击模拟 URL,而是点击真实的 - 加载真实页面。试过了。
      猜你喜欢
      • 2015-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多