anchor.diff:      This is conventional web API behavior, driven by
       [security concerns](https://www.owasp.org/index.php/OWASP_AJAX_Security_Guidelines#Always_return_JSON_with_an_Object_on_the_outside).
   
  -    我们不应该期待解码后的JSON直接就是一个英雄数组。
  -    调用的这个服务器总会把JSON结果包装进一个带`data`属性的对象中。
  -    我们必须解开它才能得到英雄数组。这是一个约定俗成的Web API行为规范，它是出于
  +    我们不应该期待解码后的 JSON 直接就是一个英雄数组。
  +    调用的这个服务器总会把 JSON 结果包装进一个带`data`属性的对象中。
  +    我们必须解开它才能得到英雄数组。这是一个约定俗成的 Web API 行为规范，它是出于
       [安全方面的考虑](https://www.owasp.org/index.php/OWASP_AJAX_Security_Guidelines#Always_return_JSON_with_an_Object_on_the_outside)。
   
   .alert.is-important
  
positive.code:     adding the `InMemoryWebApiModule` to the `AppModule.imports` list.
      At the same time, call its `forRoot` configuration method with the `HeroData` class.
  
      使用内存Web API服务模块很容易配置重定向，将`InMemoryWebApiModule`添加到`AppModule.imports`列表中，
      同时在`HeroData`类中调用`forRoot`配置方法。
    +makeExample('server-communication/ts/app/app.module.ts', 'in-mem-web-api', 'app/app.module.ts')(format=".")
    :marked
  
negative.code: :marked
    ### Headers
  
    ### 请求头 (headers)
  
    In the `headers` object, the `Content-Type` specifies that the body represents JSON.
  
    我们通过`Content-Type`头告诉服务器，body 是 JSON 格式的。
  
  +ifDocsFor('ts')
    :marked
  