Angular2 http得到restfull api请求无法正常工作

时间:2016-04-22 00:46:10

标签: angular ionic2

我刚刚进入angular2并遇到了一个问题我不知道如何解决。我试图从restfull api获取一些数据并且一切正常。问题是,当我尝试另一个restfull api时,就像测试一样,它不会得到我的数据。

所以对这个api的调用有效:http://jsonplaceholder.typicode.com/posts

works() {
    return new Promise(resolve => {
        this.http.get('http://jsonplaceholder.typicode.com/posts')
        .map(res => res.json())
        .subscribe(data => {
             this.data = data;
             console.log(data);
             resolve(this.data);
        }, error => console.error(error));
    });
  }

但是对这个api的调用没有:http://gokhankaradas.com/wp-json/posts它总是进入错误状态。 (对象{_body =事件错误,状态= 200,statusText ="确定",...})

doesNotWork() {
    return new Promise(resolve => {
        this.http.get('http://gokhankaradas.com/wp-json/posts')
        .map(res => res.json())
        .subscribe(data => {
             this.data = data;
             console.log(data);
             resolve(this.data);
        }, error => console.error(error));
    });
  }

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我可能已经解决了这个问题。

我通过laravel创建了一个简单的结果,产品列表,然后以json格式吐出然后进行测试。它也像失败的api一样失败了。

public function test(Product $product){
    $products = $product->get();
    return Response::json($products, 200);
}

然后我将以下代码添加到routes.php并且它工作正常。所以我想失败的api没有那个。不太确定,但它似乎解决了我的问题;)

header('Access-Control-Allow-Origin:  *');
header('Access-Control-Allow-Methods:  POST, GET, OPTIONS, PUT, DELETE');