Разрабатывая впервые проект angular 6 после нескольких проектов в AngularJS, я столкнулся с проблемой CORS (по крайней мере, я так думаю ..)
Что я хочу и всегда делал, это чтобы получить мои данные с сервера MySQL. Я знаю, что Angular не может напрямую общаться с Mysql.
Поэтому я использую этот php API: https://github.com/mevdschee/php-crud-api
У меня есть успех с http.get (), но не с http.post ().
Консоль выдает ошибку: ошибка 404 и сообщение: Ответ на предпечатную проверку не имеет статуса HTTP ok.
Читая все ответы здесь, в Stackoverflow, я думаю, это как-то связано с модификацией заголовков. Поэтому я добавил заголовки к своему запросу на публикацию, как вы можете видеть в моем коде. Никакого результата, однако.
Мой проект работает на localhost: 4200, а API, который я использую для получения данных, находится на localhost: 80
Любая помощь очень ценится!
Это мой код:
import { Injectable } from '@angular/core';
import { Http, Headers } from '@angular/http';
@Injectable()
export class ServerService {
constructor(private http: Http) { }
public api = 'http://127.0.0.1/';
storeServers(servers: any[]) {
const headers: Headers = new Headers({
'Access-Control-Allow-Origin': 'http://127.0.0.1/',
'Access-Control-Allow-Methods': 'POST',
'Access-Control-Allow-Headers': 'Content-Type'
});
return this.http.post(this.api+'/Angular_6/http- start/api.php/testservers', servers, {headers: headers});
}
getServers(){
return this.http.get(this.api+'/Angular_6/http-start/api.php/testservers?transform=1');
}
}
Я решил проблему, добавив файл прокси. Смотрите это: https://www.youtube.com/watch?v=OjmZPPKaj6A