Google的Feed加载程序在转换为JSON时似乎忽略了属性。 我正在使用jQuery通过AJAX获取feed。 可以看到实际的RSS XML提要here,并且可以看到来自AJAX调用的响应here。
我需要访问url
代码的<enclosure>
属性,但不会出现在回复中。
作为参考,我使用的代码是:
function getFeed(url) {
url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&callback=?&q='
+ encodeURIComponent(url);
$.ajax({
type: 'GET',
url: url,
dataType: 'jsonp',
cache: false,
success: function(d) { alert(JSON.stringify(d); },
error: function(s,x) { alert(x); }
});
}
我无法弄清楚如何获取XML响应,因为更改dataType : 'xml'
会导致HTTP错误。 JSON更可取。
有什么想法吗?
答案 0 :(得分:7)
'enclosure'标记未包含在JSON响应中,因此您有两个选项来设置输出参数:
您需要将输出设置为“XML”:https://developers.google.com/feed/v1/jsondevguide#json_args
url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=xml&num=10&callback=?&q='+ encodeURIComponent(url);
或使用混合格式:https://developers.google.com/feed/v1/devguide#resultMixed
url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&output=json_xml&num=10&callback=?&q='+ encodeURIComponent(url);
您将获得JSON以及包含所有标记的新xmlString属性(包括“enclosure”属性)
alert(d.responseData.xmlString);
在这两种情况下,您都需要解析XML字符串并导航到所需的信息
希望这有帮助