Проблема CORS в Ionic CLI 6.13.0

#php #ionic-framework #cors #preflight

#php #ионный каркас #корс #предполетный

Вопрос:

Я пытаюсь сделать http-запрос post ionic с php помощью серверной части,..

Вот мой код на ионном :

         let body = {
            'data': ['data [0]', 'data [1]']
        };
        let options = {
            headers : { 'Content-Type' : 'application/json' }
        };
        const ifSuccess = (response) => {
            console.log(response);
            this.data = response;
        };
        const ifFail = (response) => {
            this.error = 'Oops! Une erreur au niveau du serveur...';
        };
        this.http.post('http://localhost/cantine-itu/test', body, options).subscribe(ifSuccess, ifFail);
 

Вот бэкэнд (в php flight) :

 Flight::before('json', function () {
    header('Access-Control-Allow-Origin: http://localhost:8100');
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Allow-Methods: GET,PUT,POST,DELETE');
    header('Access-Control-Allow-Headers: *');
});

Flight::route('POST /test', function(){
    $data = Flight::request()->data;
    Flight::json($data);
});
 

Я получаю сообщение об ошибке, в котором говорится, что: Access to XMLHttpRequest at 'http://localhost/cantine-itu/test' 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.
(ошибка-изображение)

Комментарии:

1. Попробуйте поместить заголовки в начало вашего php-файла.

2. Я пробовал это, но ничего не изменилось…

Ответ №1:

Вы получаете эту ошибку из веб-браузера или с определенного устройства?

Поскольку это локальная разработка, а не производство, я бы установил максимально допустимый уровень.

   'capacitor://localhost',
  'ionic://localhost',
  'http://localhost',
  'http://localhost:8080',
 

https://ionicframework.com/docs/troubleshooting/cors