0

我正在尝试使用$httpBackendAngular (v1.2.15) 的服务,但它只是忽略了我的请求。如您所见,我计划了两种请求,一种用于html 文档,另一种用于REST 请求。但是,当我提出请求时,什么也没有发生。我仍然收到承诺,但永远不会解决。如果我更改了请求并写了一些意想不到的东西,我就会失败。

(function (angular) {
    'use strict';

    angular
        .module('testApp', ['ngMockE2E'])
        .run(function ($httpBackend, $http) {

            $httpBackend.whenGET(new RegExp(".*\/rest\/data$")).respond(function() {
                return [200, {title: 1}, {}]
            });

            $httpBackend.whenGET(new RegExp(".*\\.html$")).passThrough();

            $http.get("/rest/data").finally(function() {
                console.log("Request mocked");
            });

        });

}(angular));

编辑

好的,我将向您展示我调试错误所遵循的步骤:

  • 我使用passThrough函数而不是respond检查正则表达式是否被正确评估。是的,它提出了真正的请求,显然没有找到响应。
  • 之后,我检查了评论中已经解释的刷新请求,但也收到了来自 angular 的消息,说没有请求。
  • console.log()也不输出任何东西。警报、断点等都不是。

还有其他想法吗?

编辑2:

问题解决了。猜猜怎么看。我重新启动了 grunt 服务器并直接工作。

我稍后会尝试重现该错误,看看是否必须报告

4

2 回答 2

2

尝试刷新待处理的请求。

$httpBackend.flush();
于 2014-07-05T12:02:36.663 回答
0

什么是 title 变量的值或者不应该被引用?我讨厌默默失败的语言。您在 return 语句的末尾还缺少一个分号。可能还有其他 javascript voodoo 发生。建议在 Chrome 之类的调试器中运行它,看看实际发生了什么。

您的回复中还缺少 mime-type 标头。

于 2014-07-05T12:37:17.840 回答