javascript - Angular $http:s transformRequest ändrar inte headers


God dag!

Jag har skapat RequestTransformer-tjänsten för att ändra content-type-headern och serialisera postdata.

Här är metoden jag använder för att ändra rubrikerna och delegera dataserialisering till metoden serializeData (serializeData fungerar bra).

class RequestTransformer implements IRequestTransformer {

  public transformAsFormPost(data, getHeaders:IHttpHeadersGetter): string {
    let headers = getHeaders();
    headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    return  RequestTransformer.serializeData(data) ;
  }
  /*Other code logic */
}

Jag har också skapat testfall:

describe('Test RequestTransformerService functionality', function () {
    let $httpBackend: IHttpBackendService;
    let $http: IHttpService;

    beforeEach(inject(function (_$httpBackend_, _$http_) {
      $httpBackend = _$httpBackend_;
      $http = _$http_;
    }));

    it('should transform post data as a regular form post', function () {
      $http({
        method: "POST",
        url: 'test-transform.com',
        transformRequest: RequestTransformer.transformAsFormPost,
        data: {
          id: 4,
          name: "John",
          status: "Best Friend"
        }
      });

      $httpBackend.expectPOST('test-transform.com',
        function (data) {
          expect(data).toEqual('id=4&name=John&status=Best+Friend');
          return data;
        },
        function (headers: Array) {
          expect(headers['Content-Type']).toEqual('application/x-www-form-urlencoded; charset=utf-8');
          return headers;
        }).respond(201, '');

      $httpBackend.flush();
    })
  });

Resultatet av testrundan är:

Förväntad 'application/json;charset=utf-8' att vara lika med 'application/x-www-form-urlencoded; charset=utf-8'.

Vad kan orsaken till det vara?