我正在尝试使用Angular的$httpBackend
服务(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
来检查正则表达式是否已正确评估。是的,它提出了真正的要求,显然答案是未找到的。console.log()
也没有输出任何内容。警报,断点等都没有。还有其他想法吗?
编辑2:
问题解决了。猜猜怎么样。我重新启动了grunt服务器并直接工作。
稍后我会尝试重现该bug,看看是否必须报告
答案 0 :(得分:2)
尝试刷新待处理的请求。
$httpBackend.flush();
答案 1 :(得分:0)
标题变量的值是什么,或者不应该引用?我讨厌默默地失败的语言。您在return语句的末尾也缺少分号。可能还有其他javascript伏都教正在发生。建议在像Chrome这样的调试器中运行它,看看实际发生了什么。
您的回复中也缺少mime-type标头。