【问题标题】:AngularJS $http.get return errorAngularJS $http.get 返回错误
【发布时间】:2014-08-12 02:06:34
【问题描述】:

我第一次使用 http 请求。我为此使用 Angular。服务器正常工作 - 它是公共新闻 API。我需要通过 URL 获取 JSON 文件,例如“hostname.com/article/2014/06/10/123?api-key=1234567890”。

function Ctrl($scope, $http, $templateCache) {
    //some code there
    $scope.load_article = function( patch ) {
        $http.get(patch + "?" + $scope.apikey)
            .success(function(response){
                result = angular.fromJson(response.data);
                $scope.article =  result;
            }).error(function(response) {
                $scope.article = "error "+ response.status;
        });
    };
}

但是当我调用 load_article() 时,跟踪器会显示结果:

Method: OPTIONS;
Status: 596 OK;
Type: text/xml;

并将“错误未定义”写入 $scope.article。

我的错在哪里?

更新:

$http.jsonp(patch + "?" + $scope.apikey).success(function(data)){...}

获取JSON文件会更好。

【问题讨论】:

  • Http 596错误码通常表示你点击的api端点不存在。您确定您使用的是正确的 api 调用吗?
  • @zszep 当我将带有 api-key 的补丁直接复制到浏览器时,它会显示正确的 json 文件。
  • 好的,那么可能是跨域问题。如果它通过 http 而不是 XmlHttpRequest 工作,您可以尝试 JSONP 来获取数据。所有现代浏览器都限制通过 javascript 进行跨域调用。
  • @zszep 如果我在 "$http.jsonp(patch + "?" + $scope.apikey) 上更改 "$http.get(patch + "?" + $scope.apikey)" ",调用load_article()后没有statmen...没有成功,没有错误。看起来该函数被忽略了。
  • JSONP 通常要求您在请求中发送回调函数(您应该查找 api 的文档)。如果您告诉我们您使用的是什么公共新闻 API,有人可能会提供帮助。

标签: javascript json angularjs http frontend


【解决方案1】:

JSONP 通常要求您在请求中发送回调函数(您应该查找 api 的文档)。如果您告诉我们您正在使用什么公共新闻 API,有人可能会提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2016-12-24
    • 1970-01-01
    • 2013-10-21
    相关资源
    最近更新 更多