首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的角码返回未定义?

为什么我的角码返回未定义?
EN

Stack Overflow用户
提问于 2015-12-27 05:54:15
回答 1查看 282关注 0票数 0

我在玩角定位,用角和一些API服务定位客户端的地址。我得到它来正确定位IP地址,但由于某种原因,我一直无法执行地理查找。API服务运行良好,我的URL似乎也很好。

代码语言:javascript
复制
'use strict';

angular.module('Zeus', [])
.controller('ZeusController', function ($scope, $http) {

    function fetchIP() {
        $http.get("http://ipv4.myexternalip.com/json")
            .then(function (response) {
                $scope.ip = response.data.ip;
            });
        return $scope.ip
    }

    var ip = String(fetchIP());

    function geoIP() {
            $http.get("https://freegeoip.net/json/" + String(ip))
                .then(function (response) {
                    $scope.country_code = response.data.country_code;
                });
        return $scope.country_code;
    }

    var latLon = geoIP();


});

我的Chrome控制台出现了以下错误:

代码语言:javascript
复制
Failed to load resource: the server responded with a status of 404 (OK)
https://freegeoip.net/json/undefined

URL绝对不应该是未定义的,因为使用带有角的IP,url会在web浏览器中返回正确的响应。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-27 05:59:50

那是因为geoIP()有回调,你必须处理那个回调

像这样

代码语言:javascript
复制
function geoIP() {
    return $http.get("https://freegeoip.net/json/" + String(ip))
        .then(function(response) {
            return response.data.country_code;
        });

}
var latLon;
geoIP().then(function(r) {
    latLon = r;
})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34477975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档