【问题标题】:Third Party IP Address API returning null with ajax使用 ajax 返回 null 的第三方 IP 地址 API
【发布时间】:2020-09-10 18:47:01
【问题描述】:

我无法使用以下 Javascript 和 JQuery 代码从 ipify API 调用中获得响应。如果重要的话,我正在使用 Gulp 来运行该项目。 下面是我认为可以与回调一起使用的示例代码:

function callAPI( callback ) {
    $.ajax("https://api.ipify.org/?format=json",
      {
        success: function(response) {
          callback(response);
        }
      });
  }
  function alertIP( response ) {
    alert(response);
  }
  callAPI(alertIP);

在页面加载时,应该会出现一个警告框,其中包含用户的 IP 地址。然而,实际出现的是一个空白的警告框。在进一步检查响应对象后,我可以看到它为空。

当我通过浏览器或 Postman 输入 API 点时,它工作正常,所以我不知道为什么它在我的代码中不起作用。我尝试了其他一些异步解决方案(明确编写 async:true,使用 .when().then()),但是当我尝试运行它时,API 似乎总是失败(在 .done() .fail() 调用中,代码总是执行 .fail())。

关于我可能做错了什么有什么想法吗?

【问题讨论】:

  • 我无法重现您描述的行为;您的 AJAX 请求在我的测试中返回一个 JavaScript 对象。
  • 如前所述,响应是一个对象。响应:{“ip”:“127.0.0.1”}。任何使用它的人都应该引用 response.ip 而不仅仅是 response。

标签: javascript jquery ajax asynchronous


【解决方案1】:

我能够解决我的问题。 问题不在于代码,而在于运行它的浏览器。 事实证明,Brave 浏览器阻止了 API 请求。在谷歌浏览器上运行后,代码 sn-p 就可以工作了。

【讨论】:

    猜你喜欢
    • 2017-07-18
    • 1970-01-01
    • 2021-09-20
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2019-11-01
    • 2013-01-06
    相关资源
    最近更新 更多