Я установил ServiceStack
приложение, работающее на port 5001
Используя клиент машинописи для ServiceStack (используя typescript-ref
), я сгенерировал dtos
Мне нужно перехватить ответы, потому что иногда мой сервер перенаправляет клиента на другую страницу. Но я не могу сделать это со стандартными перенаправлениями XHR, мне нужно сделать это с перехватчиком HTTP (аналогично угловому)
Я настроил угловой JsonServiceClient
import { Injectable } from '@angular/core';
import { JsonServiceClient } from '@servicestack/client';
import { Router } from '@angular/router';
@Injectable({
providedIn: 'root',
})
export class ServiceClient extends JsonServiceClient {
constructor(router: Router) {
super('https://localhost:5001');
this.responseFilter = res => {
const navigateTo = res.headers.get('X-Navigate-To');
if (!navigateTo) {
return;
}
router.navigateByUrl(navigateTo);
};
}
}
// client.responseFilter is triggered successfully, but the Response.headers does not contain the headers sent by the service. Only `content-type: application-json`
В моем сервисе я добавляю заголовок запроса
// ...
return new HttpResponse(HttpStatusCode.NoContent){
Headers = {{"X-Navigate-To", "/home/whathever"}}
}
// ...
Я успешно вижу заголовок, возвращаемый на консоли браузера
Когда я проверяю заголовки Fetch Response, я вижу только Content-Type
в качестве заголовков и код состояния 200
Как добавить фильтр ResponseFilter, который будет захватывать фактические запросы GET / POST / PUT / DELETE?