AngularJS JSONP TypeError: url.replace не является функцией

Я пытаюсь получить URL, используя Zillow API в угловой JS.

angular.module('account.settings').controller('AccountSettingsCtrl', ['$scope', '$http', '$sce',
  function($scope, $http, $sce) {

    var getZillowURL = function() {
      var url = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1ft20wfj30r_94p25&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA";
      var trustedUrl = $sce.trustAsResourceUrl(url);
      $http.jsonp(trustedUrl, {
          jsonpCallbackParam: 'callback'
        })
        .success(function(result) {
          $scope.mortgageLocation = result;
          console.log('success!');
          console.log(result);
        })
        .error(function(data, status) {
          console.log('error!');
          console.log(data);
        });
    };
    getZillowURL();
  }
]);

Но JSONP возвращает ошибку. Когда я обращаюсь с URL, который используется в качестве параметра JSONP, веб-браузер показывает правильно. Этот zillow API возвращает данные XML. Как я могу получить это как данные типа JSON?

1 ответ

Вы можете использовать xml2json. получить его отсюда:

xml2json github

Добавить ссылку:

<script src="xml2json.js"></script>

и в вашем контроллере, после того как вы получите XML-ответ от API, преобразуйте его в JSON, как это

  var x2js = new X2JS();
  var jsonResponse= x2js.xml_str2json(your_xml);
Другие вопросы по тегам