javascript - Angular 模拟忽略请求

标签 javascript angularjs http angular-mock

我正在尝试使用 Angular (v1.2.15) 的 $httpBackend 服务,但它只是忽略我的请求。如您所见,我计划了两种请求,一种用于 html 文档,另一种用于 REST 请求。但是,当我执行请求时,什么也没有发生。我仍然收到 promise ,但永远不会得到解决。如果我更改请求并编写一些意外的内容,则会失败。

(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 服务器并直接工作。

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

最佳答案

尝试刷新待处理的请求。

$httpBackend.flush();

关于javascript - Angular 模拟忽略请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586129/

相关文章:

javascript - 在javascript中选择文本

javascript - AngularJS:如何在 ui-router 中加载 View 后清除缓存?

http - 拦截某些 HTTP 请求的 Firefox 插件

javascript - 这种魔力仅与迭代器有关,还是更普遍的底层事物?

javascript - 在可读事件监听器回调中读取时,Node 的 process.stdin 可读流记录 Null

JavaScript - : var DndUpload = function (inputElem){}; 的含义

javascript - AngularJS Controller 不工作

javascript - 如何使用angularjs获取html元素内的文本?

http - 用 lighttpd 重写 - 如何删除文件扩展名

Angular - 缓存 http 响应的最佳方式