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. получить его отсюда:
Добавить ссылку:
<script src="xml2json.js"></script>
и в вашем контроллере, после того как вы получите XML-ответ от API, преобразуйте его в JSON, как это
var x2js = new X2JS();
var jsonResponse= x2js.xml_str2json(your_xml);