我遇到Angular $ http的jsonp()函数问题。我试图从外部URL获取一些数据。这是我的代码:
module.factory('Ajax', function($http) {
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
return {
get: function(url, obj) {
return $http.post(url, obj);
},
getJSON: function(url, obj) {
return $http.jsonp(url, obj);
}
}
});
型号:
factory.getQuote = function(symbol) {
var q = $q.defer();
Ajax.getJSON(
"https://my-url.nl/quote/"+symbol+"/all?callback=parseQuote").then(function(data) {
console.log(data);
q.resolve(data);
}, function(data) {
console.log(data);
console.log("Error Promise getQuote user.js");
});
return q.promise;
}
parseQuote = function(test) {
if (test.status == "OK") {
console.log(test[$scope.symbolCode])
}
}
它进入回调(parseQuote,并记录我需要的信息),但是,它还记录"错误承诺getQuote user.js",这是错误/失败回调,这是奇数因为我得到了数据。
有什么建议吗?
答案 0 :(得分:0)
这是解决方案:
factory.getQuote = function(symbol) {
var q = $q.defer();
Ajax.getJSON(
"https://my-url.nl/quote/"+symbol+"/all?callback=JSON_CALLBACK").success(function(data) {
console.log('SUCCES')
q.resolve(data);
}).error(function(data) {
console.log("Error Promise getQuote user.js");
});
return q.promise;
}