链接获取请求中丢失的标头[React-Native]

时间:2017-01-31 17:42:07

标签: api reactjs react-native fetch

我目前正在尝试链接API请求以使用React Native检索用户信息。我遇到的问题是第一个获取请求提供了我正在寻找的响应,但链接的请求挂起。

我已经能够通过在我的机器上运行API来缩小范围,这就是问题所在。在发出第一个请求时,配置对象中的标头将毫无问题地传递。发出第二个请求时,会传递X-Tenant-Name标头,但由于某种原因,Authorization标头在进程中丢失,因此请求失败。

这是发出请求的函数:

  async componentWillMount() {
    const { authToken, selectedUser, tenant } = this.props;

    const config = {
      method: 'GET',
      headers: {
        'X-Tenant-Name': tenant,
        'Authorization': 'Bearer ' + authToken
      }
    }

    await fetch(URL + '/users/' +  selectedUser.id, config)
    .then(response => response.json())
    .then(response => {
      this.setState({ user: response.data });
      const children = response.data.relationships.following_tips.data;

      if (children.length) {
        for (let i = 0; i < children.length; i++) {
          fetch(URL + '/tips/' + children[i].id, config)
          .then(response => response.json())
          .then(response => console.log(response))
          .done();
        }
      }
    })
    .done();
  }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为您的问题是由于您忘记将config传递给第二个fetch而引起的。试试这个:

async componentWillMount() {
  const { authToken, selectedUser, tenant } = this.props;

  const config = {
    method: 'GET',
    headers: {
      'X-Tenant-Name': tenant,
      'Authorization': 'Bearer ' + authToken
    }
  }

  await fetch(URL + '/users/' +  selectedUser.id, config)
  .then(response => response.json())
  .then(response => {
    this.setState({ user: response.data });
    const children = response.data.relationships.following_tips.data;

    if (children.length) {
      for (let i = 0; i < children.length; i++) {
        fetch(URL + '/tips/' + children[i].id, config) //Add config to this fetch too.
        .then(response => response.json())
        .then(response => console.log(response))
        .done();
      }
    }
  })
  .done();
}