使用Promise和Async调用ipinfo.io(REACT)

时间:2019-05-31 10:41:46

标签: javascript reactjs axios

我想知道为什么我继续得到"GET https://ipinfo.io/ 429"

createError.js:17 Uncaught (in promise) Error: Request failed with status code 429
    at createError (createError.js:17)
    at settle (settle.js:19)
    at XMLHttpRequest.handleLoad (xhr.js:78)

错误。我试图弄清楚如何使用promise和async wait通过react调用ipinfo.io的api。

我看到了文档中介绍的这个jquery版本,但是我试图改用axios:

$.get("https://ipinfo.io", function(response) {
  console.log(response.ip, response.country);
}, "jsonp")

这是我使用回调调用它的方式:

 componentDidMount() {
this.getData();
}

     getData() {
        axios.get("https://ipinfo.io", (response) => {
            console.log(response.ip, response.country);
        }, "jsonp");

    }

这是我通过异步等待方式调用它的方式:

componentDidMount() {
this.getData();
}

async getData() {
    const response = await axios.get("https://ipinfo.io");
    console.log(response.ip);
}

你知道我在做什么错吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  1. https://ipinfo.io/免费注册
  2. 获取ipinfo访问令牌
  3. 像这样使用它:
axios.get(`https://ipinfo.io/json?token=${ipinfo_token}`)
  .then(response => {
    console.log(response.data.ip);
  })
  .catch(e => {
    console.log(e);
  });