HttpClient response is stripped out in ios

I have a service that makes a .get request as follows:

login(code: string) {
    let auth = `Basic code}`;
          headers: {'Authorization': auth},
          observe: 'response'
      ).subscribe(resp => {'token', resp.headers.get('token'));
      }, error => {
        this.apiError.handle(error, true);

I also have an interceptor class that adds some additional headers to all HTTP request:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const url = '';

    return from(this.getToken()).pipe(mergeMap((token) => {
      const changedReq = request.clone({
        url: url + request.url,
        setHeaders: {
          'X-TOKEN': `${token}`,
          'X-Requested-With': 'XMLHttpRequest',
          'Access-Control-Allow-Origin': '*',

      return next.handle(changedReq);

  async getToken() {
    return await'token');

This code works exactly as expected on the Web Browser which is it makes a login request, sets a token received after login on the IonicStorage and then for the subsequent requests, it appends that token to the future requests.

The HttpResponse headers keys on Web and Android app when logging into the console shows:

0: "pragma"
1: "date"
2: "server"
3: "x-aspnet-version"
4: "x-powered-by"
5: "access-control-allow-origin"
6: "access-control-expose-headers"
7: "cache-control"
8: "content-length"
9: "token"
10: "expires"

But when I build it into an iOS app, the response headers keys after the login request shows as follows even though checking the Network tab, the HTTP response actually contains all the above header keys:

0: "pragma"
1: "content-length"
2: "cache-control"
3: "expires"

There is no CORS error anywhere on the console or network so I was wondering if there is something specific I need to do for iOS to get all the response headers?