У меня есть приложение Ionic 4 с PHP + mysql db backend. Я разработал и протестировал оба локально с использованием XAMPP. Недавно я перенес свой бэкэнд на веб-хостинг. При тестировании через POSTMAN вызов завершается правильно.
Однако, когда я создаю HTTP-вызов в Ionic, я всегда получаю сообщение об ошибке. В хроме это выглядит так:
В IE возникает точно такая же ошибка.
В моем PHP-бэкэнде включена поддержка CORS с использованием следующих строк:
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type, authorization"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Звонок в Angular выглядит так:
let apiUrl = 'https://xxxxxxxx.000webhostapp.com/index.php/';
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(public http: HttpClient) { }
postData(data, type) {
return new Promise((resolve, reject) => {
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
};
this.http.post(apiUrl + type, JSON.stringify(data), httpOptions).subscribe(res => {
resolve(res);
}, (e) => {
reject(e);
});
});
}
...
Наконец, заголовки неудачного запроса в Chrome, если это полезно:
Некоторые поиски в Google научили меня, что это, скорее всего, ошибка, связанная с CORS. Я нахожу странным, однако, что при использовании POSTMAN вызов работает отлично, но через приложение - нет, хотя я использую те же заголовки, URL и тело.
Любая помощь высоко ценится.
Спасибо