Угловой http-клиент - PullRequest
       3

Угловой http-клиент

0 голосов
/ 22 февраля 2019

У меня проблема с angular, проблема заключается в следующем: метод получения http-клиента не получает никакого значения от API в php, который прослушивает порт localhost: 123. Код php будетследуйте

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

//Get todos los usuarios
$app=new \Slim\App;

//Get todos los usuarios
$app->get('/api/clientes', function(Request $request,Response $response){
    include "../src/db.php";
    $query="select * from users";

    $result = mysqli_query($con,$query);    
    if (!$result) {  
        die("Query fail");
    }else {
        $row_cate = mysqli_num_rows($result); 

        if($row_cate == null){
            echo "no existen datos en la dbo";
        }
        else{
            $users=array();
            $cont=0;
            while ($row = mysqli_fetch_array($result)){
                $producto[$cont]=array(
                    "id" => $row['id'],
                    "name" => $row['name'],
                    "email" => $row['email']
                );
                $cont++;
            }
            echo json_encode($producto);
        }
    }
});

, и метод углового клиента следующий.

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { User } from './user.model';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class DataService {


  constructor(private http:HttpClient) { }

  get(){
    const url="http://localhost:1234/public/api/clientes";
    return new Promise(
      resolve=>{
        this.http.get(url)
        .subscribe(
          data=>resolve(data)
        )
      }
    );
  }

}

Буду признателен за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Мне уже удалось устранить ошибку, правда была ошибка новичка, проблема была в api, я не поставил заголовки, которые позволяли выполнять процедуры «get», «post» и т. Д. В php

0 голосов
/ 22 февраля 2019

Ваш код в методе get() недействителен.Вот лучший код, если вы хотите, чтобы он возвращал Promise.

get(): Promise<any> {
  const url="http://localhost:1234/public/api/clientes";
  return this.http.get(url).toPromise();
}

Кроме того, убедитесь, что ваш сервер отвечает ожидаемыми данными

Если вы только начинаете работать с Angular, тоМой вам совет - изучать RxJS и использовать Observables вместо Promises with Angular.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...