【问题标题】:Trouble accessing remote JSON in AngularJS在 AngularJS 中访问远程 JSON 时遇到问题
【发布时间】:2016-11-15 08:11:45
【问题描述】:

所以,我一直在做这个练习,我要解决最后一个问题。

JSON 位于不同的服务器上。如果我使用普通的旧$http.get,那么它不允许跨服务器请求。当我切换并使用$http.jsonp 时,我访问了该文件,但它立即声明了一个意外的“:”。我已经验证了他们的 JSON,所以我不确定发生了什么。

这是调用的当前实现:

app.factory('users', ['$http', function($http) { 
return {
    callExternalJson: function() {
        return $http.jsonp('http://applicant.pointsource.us/api/testUser/577ebf34f62a2d8f3c05d9c0?callback=JSON_CALLBACK').then( function(response) {
            return response;
        });
    }
}
}]);

如何获取远程 JSON 文件?

需要注意的是:每次点击远程 JSON 都会发生变化。

我还尝试了一种使用 jsonp 的不同方式,我过去曾使用过这种方式来访问其他 RESTful API,并得到了相同的结果,即在它们的第一个冒号上阻塞。

【问题讨论】:

    标签: angularjs json jsonp


    【解决方案1】:

    问题不在于您的代码,而在于服务器。

    尝试将 URL 替换为支持 JSONP 的测试 URL。 http://ip.jsontest.com/?callback=JSON_CALLBACK

    【讨论】:

    • 好的,这有点让人放心,但现在我该如何访问远程 JSON?
    • 无法访问服务器,这就变成了一个比较棘手的问题。据我所知,您需要创建一个中间层。例如,设置一个简单的服务器(node.js 可以很好地工作)。然后,您将在 $http 代码中调用您的自定义服务器 URI,然后服务器将从 pointsource.us 服务器获取此数据。
    • 嘘!这对于一个简单的编码练习来说是一种痛苦!
    • 这个练习有什么用?是否有任何说明或限制可以阐明预期内容?
    • 这是一个求职面试的代码测试。他们在上面的链接中有 json,您需要检索它并以某种方式显示它。有人告诉我,我没有得到这个!大声笑!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2019-10-21
    相关资源
    最近更新 更多