【问题标题】:Angular2 http get restfull api request not workingAngular2 http获取restfull api请求不起作用
【发布时间】:2016-04-22 11:07:46
【问题描述】:

我刚刚进入 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=Event error, status=200, statusText="Ok", ...})

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));
    });
  }

我错过了什么吗?

【问题讨论】:

  • 你能发布实际的错误吗?
  • 好吧,我确实得到了一个错误对象,但我没有看到任何有用的信息。 Object {_body=Event error, status=200, statusText="Ok", ...} 当我浏览该对象时,我没有看到任何有用的信息。奇怪的是里面的status是200,statusText没问题。

标签: angular ionic2


【解决方案1】:

我可能已经自己解决了。

我通过 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');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-21
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2018-05-10
    • 2016-10-14
    相关资源
    最近更新 更多