Как мне связать php slim с Ionic

#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.
...