我正在尝试构建一个Angular-Ionic应用程序,该应用程序通过http请求信息从中央数据库获取信息。这些是由PHP以JSON的形式构建的。我也收到了信息,但无法处理。
我的JSON看起来像这样:
[
{0: {id: 1, title: 'TITLE', image:'TITEL'},
{1: {id: 2, title: 'TITLE', image:'TITEL'},
{2: {id: 3, title: 'TITLE', image:'TITEL'}
]
这是我的PHP代码:
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers:
{$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
}
$mysqli = new mysqli("[DATABASE_URL]", "[DATABASE_USER]", "[DATABASE_PWD]", "[DATABASE]");
$query = "SELECT id, title, image FROM database ORDER BY title ASC";
$dbresult = $mysqli->query($query);
while($row = $dbresult->fetch_array(MYSQLI_ASSOC)){
$data[] = array(
'id' => $row['id'],
'title' => $row['title'],
'image' => $row['image']
);
}
if($dbresult){
$result = json_encode(utf8ize($data),JSON_FORCE_OBJECT);
} else {
$result = "{success:false}";
}
echo $result;
function utf8ize($d) {
if (is_array($d)) {
foreach ($d as $k => $v) {
$d[$k] = utf8ize($v);
}
} else if (is_string ($d)) {
return utf8_encode($d);
}
return $d;
}
我想在Angular / Ionic中使用获得的数据构建一个列表。我在最新版本上使用了Ionic 3。 Http和HttpClient以及HttpProvider没有带来任何结果:
<ion-card *ngFor="let item of newsData">
<img src="../../assets/imgs/{{ item.image }}.jpeg"/>
<div class="card-title">{{ item.title }}</div>
<div class="card-subtitle">{{item.id}} Rezepte</div>
</ion-card>
我怎样才能做到这一点?
答案 0 :(得分:0)
您必须将您的http请求的响应分配给变量,而不是按照您的方式进行。
如果你提供更多关于你在离子方面做了什么的信息来得到答案,我们可以看到这里的错误。