Я использую http.Request метод, чтобы сделать http-вызов на сервер. В консоли браузера я вижу два HTTP-запроса. Один дает ответ как POST,GET,HEAD
с XHR, показанным как статус 200, а другой дает правильный ответ, но статус XHR показан как другой. http.Request находится в сервисе, а подписка находится в классе компонентов.Http.Request (новый запрос ({})) отправлен дважды
Класс обслуживание
export class Httpprovider {
http: Http;
constructor(http: Http){
this.http = http;
}
httpReq(url: string, method: string, data: any, header: Headers){
let headers = new Headers();
headers.append('Content-Type', 'application/json');
console.log(headers);
if (method === 'GET'){ var methods = RequestMethod.Get}
else if (method === 'POST'){ var methods = RequestMethod.Post}
else if (method === 'PUT'){var methods = RequestMethod.Put}
else if (method === 'PATCH'){var methods = RequestMethod.Patch}
else if (method === 'DELETE'){var methods = RequestMethod.Delete}
else {methods = RequestMethod.Get};
return this.http.request(new Request({
method: methods,
url: url,
body: JSON.stringify(data),
headers: headers
})).map(res => res.json());
}
}
Не видя кода, который вызывает 'HttpProvider.httpRequ (...)', не существует способа сказать. –
, пожалуйста, проверьте вкладку сети. вы найдете один запрос с опцией 'preflight'', как @ GünterZöchbauer добавил в ответ –