#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',