Access to XMLHttpRequest at ‘https://exemplodedominio.com/app-api/api/login-register.php’ from origin ‘http://localhost:8100’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
Estou usando uma API em PHP para um aplicativo feito em Ionic e Angular, mas o erro acima ocorre não somente na hora de executar a aplicação com o link da API não local, como também na hora abrir o aplicativo (já compilado) em um dispositivo móvel.
Já está liberado o Access-Control-Allow-Orign com * na header do PHP, como mostra as headers da API abaixo:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With");
header("Content-type: application/json; charset=utf-8");
header("Content-type: text/plain; charset=utf-8");
O meu provider na aplicação é este:
server: string = "https://exemplodedominio.com/app-api/api/";
postData(body, file){
let type = "application/json; charset=UTF-8";
let headers = new Headers({ 'Content-Type': type });
let options = new RequestOptions({ headers: headers });
return this.http.post(this.server + file, JSON.stringify(body), options)
.map(res => res.json());
}
(descarto a possibilidade de substituir por proxies, sendo assim, minha última opção)