我学习了AngularJs,我试着编写一个非常基本的脚本,向eBay公共API发送一个http请求,我已经注册并获得API密钥,我读过的文档几次,写了这个基本代码:在浏览器中工作时,角度HTTP GET请求返回undefined
$scope.getQueryUrl = function() {
// Some unrelated code ...
$scope.queryUrl["Ebay"] = "http://svcs.sandbox.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-NAME=FindingService&SERVICE-VERSION=1.0.0&GLOBAL-ID=EBAY-US&SECURITY-APPNAME="+dataAuth.EbayKeyApi+"&RESPONSE-DATA-FORMAT=XML&keywords="+$scope.qtext ;
};
$scope.sendRequest = function() {
$scope.getQueryUrl(); // Gets the query url after adding all the parameters
alert($scope.queryUrl.Ebay);
$http.get($scope.queryUrl["Ebay"]).then(
function(response){
alert("success" + response.data);
},
function(response){
alert("error" + response.statusCode);
});
};
如何这个代码应工作:
它应该创建一个格式化的易趣查询网址,通过HTTP GET请求,并发送回发送响应 。
注意:$scope.qtext
& dataAuth.EbayKeyApi
已被分配各自的值。
什么问题:
的问题是,使用这个脚本Angularjs,代码不工作,警告“错误”字样,而response.statusCode
是不确定的。
但是,当我在Firefox中复制格式化的Ebay查询链接时,它完美地工作,并显示XML响应。
格式化的Ebay查询是使用提供的脚本生成的。
我认为这是一个头相关的问题。
检查浏览器开发工具网络中的实际请求。 API可能不支持CORS。很少有xml输出。看看他们是否有'json'格式或'jsonp'。另外$ http默认是json。一些API不能被ajax访问,并且需要使用代理来获取数据 – charlietfl