typescript - 如何使用 angular2 从 MockBackend 获取 header

标签 typescript angular

我在使用 MockBackend 检查单元测试中代码发送的 header 时遇到问题。

我正在测试中执行以下操作:

injectAsync([Http, XHRBackend], (http: Http, backend: MockBackend) => {
  return new Promise((pass, fail) => {
    var request: Request;

    backend.connections.subscribe((c: MockConnection) => {
      request = c.request;
      c.mockRespond(new Response(new ResponseOptions()));
    })

    let req_headers = new Headers({'Authorization': 'Bearer foo'});
    http.get('/', new ResponseOptions({headers: req_headers})).subscribe(
      () => {
        // I try to get the request headers here
        console.log(request.headers);
        pass();
      },
      fail
    )
  })
})

但是,当我尝试读回标题时,我得到一个空标题集。日志语句的结果为我提供了 Headers{_headersMap: Map{}}

我错过了什么?

最佳答案

事实上,它们在那里,但 headers 属性是一个 Map 所以你需要这样获取它:

// All headers
for (var key of connection.request.headers.keys()) {
  console.log('- key = ' + key);
}

// Authorization header
var auth = connection.request.headers.get('Authorization');
console.log('auth = '+auth);

关于typescript - 如何使用 angular2 从 MockBackend 获取 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769006/

相关文章:

typescript - 收到错误 "Uncaught (in promise) TypeError: object is not a constructor(…)"

reactjs - useReducer 的 initialState 类型为 never?

CSS对象适合: cover does not work with JPEG img with EXIF orientation more 1

angular - 在 Angular 6 中使用带有标签的 FormcontrolName

angular - 如何在 Angular 中检测路线何时更改和新 View 何时被替换

reactjs - TypeScript 1.8 - 为什么我的 React Stateless Function 组件会在运行时抛出 TypeError?

javascript - 即使参数的类型错误,TypeScript 也不会出错

javascript - 我可以在装饰器方法中获取变量的名称吗?

angular - "Error: Cannot find module ' @angular-devkit/schematics/tasks ' "关于更新 Angular cli

node.js - 从 Angular2 客户端到 Node 服务器的 HTTP POST 表单数据