我正在尝试使用 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/