Unexpected token < in JSON at position 0 问题

问题

今天再写一个很简单的代码,是调用一段API的代码,类似如下的:

componentDidMount() {
    fetch("api.openweathermap.org/data/2.5/weather?q=London&units=Metric")
      .then(response => response.json())
      .then(responseData => {
        this.setState({
          temp: responseData.main.temp,
          desc: responseData.weather[0].description,
          icon: responseData.weather[0].icon,
          loading: false
        })
      })
      .catch(err => console.log(err));
  }

我在本地调用,postman测试都没问题,然后跑程序的时候,就每次报这个错误,后来才发现,这个fetch里面,必须要在前面加上我们的http,把程序改成如下就可以了。

解决方法:

fetch("http://api.openweathermap.org/data/2.5/weather?q=London&units=Metric")

原因是如果是地址不正确,他就不会解析出来我们的json,而是一个http的respose,第一个字符就是<,所以我们想在后面使用我们的对象就不对了。

你可能感兴趣的:(Unexpected token < in JSON at position 0 问题)