尝试使用Angular 2 Http从Lumen应用程序获取数据

时间:2017-03-10 14:04:56

标签: angular lumen

我正在学习Angular 2,我想构建一个应用程序,它在Lumen Framework中有后端,在Angular 2中有前端。

我已经创建了从数据库获取数据的方法,我将以这种方式返回

return response()->json(['code' => 200, 'characters' => $characters])->header('content-type', 'application/json')->header('Access-Control-Allow-Origin', '*');

并且在角度2 app中我试图通过此代码获取此数据

this.http.get(this.url)
        .toPromise()
        .then(response => response.json().data as Character[])
        .catch(this.handleError);

但是我回到了一个空数组,我知道回收数据的网址是正确的,而且数据也存在。

我尝试返回类似return-> response('test')的内容,我发现字符串测试存在。

1 个答案:

答案 0 :(得分:0)

因为你的JSON看起来像这样:

{
  "code":200,
  "characters":[
    {
      "id":1,
      "name":"tomek",
      "lead":"som‌​ething about tomek",
      "created_at":"2017-03-06 17:34:45",
      "updated_at":"2017-03-06 17:34:45"
    }
  ]
}

当你试图提取时:

response.json().data

..没有像data这样的属性。如果要提取阵列,则需要使用

response.json().characters

希望这有帮助! :)