#php #ionic-framework #slim
#php #ionic-framework #тонкий
Вопрос:
это код на ionic для ссылки на мой slim api:
postData(credentials, type){
return new Promise((resolve, reject) =>{
let headers = new Headers();
this.http.post("http://slimapp:8080/api/signup", JSON.stringify(credentials), {headers: headers}).
subscribe(res =>{
resolve(res.json());
}, (err) =>{
reject(err);
});
});
}
учетные данные — это мои данные, а тип — «регистрация»
и это тонкий php-код, который должен соответствовать маршруту
$app->post('/api/signup', function(Request $request, Response $response){
// my function is here
});
когда я подключаю postman к php slim, все работает хорошо, но когда я подключаю его к ionic, появляется эта ошибка:
[404]: /api /регистрация — Нет такого файла или каталога
Это ошибка, отображаемая в командной строке, где я запустил php-сервер 1 как это исправить?
Комментарии:
1. Привет, Патрик, добро пожаловать в stack overflow. Используете ли вы это в локальной среде? Доступен ли 8080 на вашем сервере? Если вы используете локальный хост, скорее всего, так и есть. Если вы используете виртуальную машину или облачный сервер, вам, вероятно, придется использовать обратный прокси-сервер на веб-сервере, таком как nginx.
2. Привет, я запускаю его на локальном хостинге. Я запустил php-сервер, перейдя в каталог slim из командной строки и написав: php -S 127.0.0.1:8080
3. Тогда вы должны использовать
this.http.post("http://localhost:8080/api/signup"
, правильно?4. Я сопоставил 127.0.0.1 с slimapp в hosts. Я тестировал его на POSTMAN, он работает нормально, но всякий раз, когда я подключаю его из ionic, он выдает ошибку: [404]: /slimapp / api /регистрация — Нет такого файла или каталога Я также отключил securities в chrome для запуска ionic web
Ответ №1:
После просмотра вашего журнала ошибок (обычно лучше включать форматированные сообщения об ошибках в ваш вопрос, а не связывать изображение) Я заметил, что вы создаете PHP-сервер в корневом каталоге платформы slim, но вы не объявляете корень документа в public
каталоге, как в документации.
Вы должны быть в состоянии сделать одну из двух вещей:
Вы можете перейти в public
каталог — .../htdocs/slimapp/public
— и запустить PHP-сервер там — php -S 127.0.0.1:8080
Или вы можете указать корневой каталог документа на сервере (точно так же, как в опубликованных документах) с -t
флагом.
php -S localhost:8080 -t public public/index.php
Если вы запустите php --help
, вы сможете увидеть все флаги, доступные с php
двоичным файлом.
php --help
...
-S <addr>:<port> Run with built-in web server.
-t <docroot> Specify document root <docroot> for built-in web server.
...