Я пытаюсь сделать запрос на запуск и забыть, но ни одна из опций, которые я пробовал, не работает.
Сценарий заключается в том, что после завершения одного подписываемого запроса я буду перенаправлять на какую-то другую страницу, но перед тем, как сделатьПеренаправление Я должен запустить еще один запрос, и мне не нужно ждать его ответа.Ниже приведен пример того, что у меня сейчас.
FormData.ts
sendData(){
const ci = this;
this.apiService.sendData(url, body, headers).subscribe(res => {
ci.sendFireAndForget();
window.location.href= this.tyredirect+".html";
});
}
sendFireAndForget(){
//construct the body
this.apiService.sendFireAndForget(url2, body);
}
APIService.ts
sendData(url, body, headers){
return this._http.post(url, JSON.stringify(body), headers).map((res: Response) => res.json());
}
sendFireAndForget(emailUrl, body){
let requestOptions = createHeader();
this._http.post(emailUrl, body, requestOptions);
}
Так что я не хотел знать, каков ответ, и, следовательно, я не subscribe
или toPromise()
на второй запрос.Но если я этого не сделаю, запрос не будет выполнен.
Но если я сделаю subscribe()
или toPromise()
, я получу CORS не удалось ошибка из-за перенаправления.
Теперь, если я удаляю перенаправление, то все работает как положено.Как я могу написать метод огня и забыть метод в этом случае?
PS - URL для обоих запросов на внешний сервер.
Редактировать 1
Есть ли проблема с window.location.href
для получения CORS в этом сценарии?