Решением, которое помогло, было разместить аннотацию CORS на моем контроллере rest в Java, так что, вероятно, здесь может помочь только код на стороне сервера.

ользую следующий код для отправки запроса

import { Http, Headers, Response } from '@angular/http';

@Injectable()
export class AuthenticationService {
    private _options = new Headers({'Content-Type': 'application/json'});
    
    constructor(private http: Http) { }

    login(username: string, password: string) {
           return this.http.post('http://localhost:56451/map',
              { "username": username, "password": password },
              this._options);
    }
}

Однако я получаю следующую ошибку в VScode

Argument of type '{ headers: HttpHeaders; }' is not assignable to parameter of type 'RequestOptionsArgs'. Types 
 of property 'headers' are incompatible. Type 'HttpHeaders' is not assignable to type 'Headers'. Property 'forEach' 
 is missing in type 'HttpHeaders'.

Пожалуйста, помогите уточнить связанные понятия

 JayDeeEss02 нояб. 2017 г., 19:54
это еще одна проблема, я видел пару вопросов по этому поводу на SO, поиск, вы получите ответ наверняка!
 JayDeeEss02 нояб. 2017 г., 19:48
используйте заголовки из @ angular / http вместо HttpHeaders, если вы используете angular 4new Headers({ 'Content-Type': 'application/json' });
 Jota.Toledo02 нояб. 2017 г., 20:23
где определены this.options?
 prettyfly02 нояб. 2017 г., 19:56
Я полагаю, что вы получаете 403, поскольку вы предоставляете заголовки в запросе POST, поэтому Angular сначала отправляет запрос OPTIONS, для которого ваша серверная логика не настроена. Вам нужно будет включить CORS на сервере, иначе вы получите 403/405.
 wdanda02 нояб. 2017 г., 20:07
Пожалуйста, обновите ваш вопрос с выводами из комментариев выше

Ответы на вопрос(2)

Решение Вопроса

HttpHeaders подходит кHttpClient, которыйзаменяет Http с 4.3.

Другие комментарии о 403 заслуживают изучения, но, как минимум, сделайте следующее:

import { HttpClient, HttpHeaders } from "@angular/common/http";
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map'

@Injectable()
export class AuthenticationService {
    private _options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };

    // Inject HttpClient, not Http
    constructor(private http: HttpClient) { }

    login(username: string, password: string) {
           return this.http.post('http://localhost:56451/map',
              { username, password },
              this._options);
    }
}

Обратите внимание, что вы можете использоватьдеструктурирующее задание в теле сообщения (когда имя ключа вашего объекта совпадает с именем переменной, которым вы его заменяете).

 Akshay Vijay Jain02 нояб. 2017 г., 20:22
Спасибо за ответ @msanford, я над этим работаю, буду обновлять по мере приближения к решению
 Akshay Vijay Jain03 нояб. 2017 г., 19:07
Или есть какой-либо другой способ или документация, чтобы определить, какой модуль содержит компонент, который мы пытаемся использовать
 Akshay Vijay Jain02 нояб. 2017 г., 20:26
работая над этим, возможно, эта ссылка актуальна здесьstackoverflow.com/questions/33660712/...
 Akshay Vijay Jain02 нояб. 2017 г., 21:54
когда я изменил Http на HttpClient, я получаю следующую ошибку в консоли, нет провайдера для HttpClient, не могли бы вы пролить свет на связанную концепцию
 msanford03 нояб. 2017 г., 14:12
@AkshayVijayJain Вы должны включитьHttpClientModule в@NgModule«simports: [] список.

что я включил плагин CORS chrome, все же из-за того, что я указывал параметры, на сервер был отправлен предварительный ответ, который был отклонен

Решением, которое помогло, было разместить аннотацию CORS на моем контроллере rest в Java, так что, вероятно, здесь может помочь только код на стороне сервера.

@CrossOrigin(origins = "*")  <------ this solved the issue of post request getting failed
@RestController
public class ProductController {...

Ваш ответ на вопрос