【问题标题】:$httpBackend does not mock $.ajax(...) calls$httpBackend 不模拟 $.ajax(...) 调用
【发布时间】:2015-03-05 16:59:48
【问题描述】:

尝试使用 $httpBackend 为 $.ajax 调用创建模拟。

下面的模拟 sn-p 可以很好地与 $http.get('/phones') 一起工作

$httpBackend.whenGET('/phones')

但是当尝试使用相同的

$.ajax({
       url: '/phones',
       type: 'GET'
})

这引发了 '/phones' ajax 调用的 404 错误。

Jsfiddler 链接here.

【问题讨论】:

    标签: jquery angularjs httpbackend angular-mock angularjs-ngmock


    【解决方案1】:

    正如$httpBackend documentation 的第一行所说,$httpBackend 是一个

    适用于使用 $http 服务的单元测试应用程序的虚假 HTTP 后端实现。

    如果您不使用$http 服务,那么$httpBackend 将不知道该请求,因此将无法拦截它或模拟响应。

    您应该始终使用 $http - 没有理由在 Angular 应用中使用 $.ajax。

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多