2016-02-25 2 views
0

Я использую 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()); 
    } 

} 
+0

Не видя кода, который вызывает 'HttpProvider.httpRequ (...)', не существует способа сказать. –

+0

, пожалуйста, проверьте вкладку сети. вы найдете один запрос с опцией 'preflight'', как @ GünterZöchbauer добавил в ответ –

ответ

2

Либо вы подписавшись несколько раз HttpProvider.httpRequ(...).subscribe() или это CORS предполетной вызов (имеет тип OPTIONS Afair), поэтому, вероятно, бывший.

+0

Хорошо, спасибо. Его запрос CORS. – Gary

Смежные вопросы