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,第一个字符就是<,所以我们想在后面使用我们的对象就不对了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 婚后第二年,子晴和张峰带着宝宝回婆家过年,这也是子晴有宝宝后第一年带宝宝回婆家过年。 子晴和张峰长住A市...
    日生水冗阅读 367评论 0 0