Я пытаюсь вызвать API с помощью Angular 2, но он отправляет ошибку CORS. Однако, если я попытаюсь вызвать тот же API из http://www.webtoolkitonline.com/javascript-tester.html (тестер Javascript) или http://hurl.it, затем выполняет его правильно.
Я также пробовал добавлять заголовки со стороны клиента.
Мой угловой код, как показано ниже
private _apiCountryUrl = 'http://52.179.4.123/smvs/index.jsp?json={"COUNTRY":[{"ACTION":"SELECT"}]}';
getTotalCountry() : Observable<ICountry[]> {
let headersNew = new HttpHeaders();
headersNew.append('Access-Control-Allow-Headers', 'Content-Type');
headersNew.append('Access-Control-Allow-Methods', 'GET');
headersNew.append('Access-Control-Allow-Origin', '*');
return this._http.get<ICountry[]>(this._apiCountryUrl, {headers: headersNew})
.do(data => console.log('Country' + JSON.stringify(data)))
.catch(this.handleError);
}
Когда вызывается API, я получаю вывод, как показано ниже.
Если я напишу код, как показано ниже
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'http://52.179.4.123/smvs/index.jsp?json=%7B%22COUNTRY%22%3A%5B%7B%22ACTION%22%3A%22SELECT%22%7D%5D%7D',
success: function(res) {
alert(res);
},
error: function(error) {
alert("error!" + JSON.stringify(error));
}
});
});
Приведенный выше код правильно работает с http://www.webtoolkitonline.com/javascript-tester.html тот же API не вызывается из Angular2. Если это ошибка на стороне сервера, то она даже не должна вызываться при выполнении запроса jQUery.