【发布时间】:2019-02-24 03:06:49
【问题描述】:
我的角度有问题,问题如下,获取http客户端的方法,没有从正在监听localhost端口的php中的api获取任何值: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);
}
}
});
和angular客户端方法如下。
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)
)
}
);
}
}
感谢您的帮助。
【问题讨论】:
-
到底是什么问题?请更准确。如果直接从浏览器浏览localhost:1234/public/api/clientes 会输出什么?
-
不要创建自己的
Promise。使用内置转换:return this.http.get(url).toPromise();。这也将允许您在浏览器开发者控制台中查看错误响应。