Javascript Angular 2访问PHP api,不返回json,而是返回文件

Javascript Angular 2访问PHP api,不返回json,而是返回文件,javascript,json,angular,Javascript,Json,Angular,Angular 2正在使用以下代码访问我的php文件: this._http.get('../api/src/1.0/get/images.php').subscribe(res => { alert(JSON.stringify(res)); }); 这会发出此警报LocalHost:3000说 { "_body": "<?php\n\nrequire_once '../../orm/connection.php';\n\n$images = R::getAll(

Angular 2正在使用以下代码访问我的php文件:

this._http.get('../api/src/1.0/get/images.php').subscribe(res => {
    alert(JSON.stringify(res));
});
这会发出此警报LocalHost:3000说

{
    "_body": "<?php\n\nrequire_once '../../orm/connection.php';\n\n$images = R::getAll( 'SELECT * FROM image');\nheader('Content-Type: application/json');\necho json_encode($images);\n\n?>\n",
    "status": 200,
    "statusText": "Ok",
    "headers": {
        "Date": ["Sat",
        " 13 Feb 2016 21:11:26 GMT"],
        "Cache-Control": ["public",
        " max-age=0"],
        "Last-Modified": ["Sat",
        " 13 Feb 2016 20:39:49 GMT"],
        "Accept-Ranges": ["bytes"],
        "ETag": ["W/\"a7-152dc5c6608\""],
        "Content-Length": ["167"],
        "Content-Type": ["application/octet-stream"]
    },
    "type": 2,
    "url": "http://localhost:3000/api/src/1.0/get/images.php"
}
{
“_body”:“\n”,
“地位”:200,
“状态文本”:“确定”,
“标题”:{
“日期”:[“周六”,
“2016年2月13日21:11:26 GMT”],
“缓存控制”:[“公共”,
“最大年龄=0”],
“上次修改”:[“Sat”,
“2016年2月13日20:39:49 GMT”],
“接受范围”:[“字节”],
“ETag”:[“W/\”a7-152dc5c6608\”,
“内容长度”:[“167”],
“内容类型”:[“应用程序/八位字节流”]
},
“类型”:2,
“url”:”http://localhost:3000/api/src/1.0/get/images.php"
}
PHP文件

<?php

require_once '../../orm/connection.php';

$images = R::getAll( 'SELECT * FROM image');
header('Content-Type: application/json');
echo json_encode($images);

?>

我希望警报只包含JSON数据。 如果我直接通过文件的url访问该文件,它只提供JSON数据。
我将如何实现这一点?

您正在调用位于
。/api/src/1.0/get/images.php的静态文件,并获取其内容


您必须使用服务器运行.php文件,然后使用http.get(…)
调用它。您可以使用php-S localhost:3333使用php localhost服务器。您需要在项目根目录(php项目)中运行此命令。

从您得到的响应中,看起来您正在请求
image.php
作为
内容类型:[“应用程序/八位字节流”]
。尝试配置
http.get()
以请求json:

const HEADER = { headers: new Headers({ 'Content-Type': 'application/json' }) };
this._http.get('../api/src/1.0/get/images.php', HEADER).subscribe(res => {
    alert(JSON.stringify(res));
});

嗯,这个标题还是一样的,你说的是PHP运行的是localhost默认端口,Angular 2运行的是localhost端口3000,我需要在端口3000上运行PHP?我会在哪里使用php-S localhost:3333,为什么使用3333?啊,对不起,这只是一个例子:3333,你可以使用任何。。。最好是在同一台服务器上运行客户端应用程序(angular 2)和api(php),只是在不同的文件夹中……这很有意义。工作良好,一旦我去了我的默认端口的网站!我也有同样的问题,在3000上运行应用程序(angular 2),并将php api放在应用程序文件夹中。您能建议在哪里放置php api并在哪个端口上运行吗?并希望发布数据。