当从Web调用时,蜂房API端点返回空数据

时间:2017-03-06 05:51:14

标签: javascript reactjs axios apiary.io apiary

我在Apiary中有一个模拟API,如果我用cURL或只是在浏览器中点击我的端点,它会返回:

[
{
  "id": 1,
  "user_id": 1,
  "status": "Review"
  "name": "New York Songwriter",
  "negotiable": true,
  "description": "",
  "created_at": "2015-02-09T02:29:58 +08:00",
  "modified_at": "2015-02-17T05:30:17 +08:00"
},
{
  "id": 2,
  "user_id": 1,
  "status": "Accepted"
  "name": "Licensing Contract",
  "negotiable": false,
  "description": "Third party licensing agreement",
  "created_at": "2015-02-09T02:29:58 +08:00",
  "modified_at": "2015-02-17T05:30:17 +08:00"
}
]

我有一个React应用程序,我在componentWillMount中调用的函数中使用axios命中此终结点:

  componentWillMount() {
    this.loadItems();
  }

  loadItems() {
    var self = this;
    axios({
      url: ENDPOINT,
      method: 'get',
      responseType: 'json'
    })
    .then(function(r) {
      console.log(r);
      var d = r.data;
      self.setState({
        agreements: d
      });
    })
    .catch(function(r) {
      console.log(r);
    });
  }

console.log我在响应中获得状态200,但data为空。我做错了什么?

1 个答案:

答案 0 :(得分:0)

感谢Mayank Shukla在评论中的回答。关键是使用原生axios GET方法,如下所示:

axios.get(ENDPOINT)
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

因为本机GET内置了所有属性。在我的示例中,我没有定义所有必需的属性。

再次感谢Mayank!