3

我的服务不能使用 angular $http 服务。我必须使用 YQL 进行 JSON 转换。$http 不像 jquery $.ajax 吗?这是我的代码:

    function cfgFunction($routeProvider)
{
    $routeProvider.
        when("/",{templateUrl:"partials/table.html"})
}

function testctrl($scope, $http) {
    var s = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20%22http%3A%2F%2Fapp.mytrading.it%3A8080%2FTS%2Fvis_dati.AllQuotes%3Fp_profilo%3D%26p_indice%3D%26p_id_cliente%3D%26p_nazione%3D%26p_num%3D%26p_titolo%3D%22&format=json&callback=';
  $http.get(s).success(function(data) {
      $scope.titoli = data.query.results.ROWSET.ROW;
  }).
  error(function(data, status, headers, config) {
    alert("error!")
    });
}
angular.module('MytApp',[]).config(cfgFunction);
4

2 回答 2

6

在我看来,你应该使用 jsonp:

$http.jsonp(url).success(...);

也不要忘记将callback=JSON_CALLBACK添加到您的查询中。

我有一个在我的jsFiddle上使用 YQL 的工作示例。

由于 http 是异步的,您有两种选择来处理它:

  • 使用 $q 返回一个承诺
  • 使用回调函数

两者都显示在示例中。

于 2012-12-23T18:17:13.833 回答
0

尝试 $http.jsonp(url,config) 因为您正在向远程域发送请求。

于 2012-12-23T17:50:01.757 回答