【发布时间】: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