2014-06-21 161 views
1

我第一次使用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。

我的錯在哪裏?

UPD:

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

將是GET JSON文件更好。

+1

Http 596錯誤代碼通常表示您正在觸碰的api端點不存在。你確定你使用了正確的API調用嗎? – zszep

+0

@zszep當我用api-key將補丁直接複製到瀏覽器時,它顯示我正確的json文件。 – Archarious

+0

好的,那麼它可能是一個跨域問題。如果它通過http而不是XmlHttpRequest工作,那麼你可以嘗試使用JSONP來獲取數據。所有現代瀏覽器都通過javascript限制跨域調用。 – zszep

回答

2

JSONP通常要求您在請求中發送回調函數(您應該查看api的文檔)。如果您要告訴我們您正在使用的公共新聞API,有人可能會提供幫助。