我想用google api读取转换为json格式的rss feed;我发了一些警报但是当我运行我的页面时我看不到它们!为什么?
这是我的jQuery代码:
function getFeed(url){
$('#screen #content').html("");
$.ajax({
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q='+url,
crossDomain: true,
dataType: 'json',
success: function(data) {
alert(3);
$.each(data.entries, function(i,results){
alert(1);
});
}
});
}
getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');
谢谢!
答案 0 :(得分:3)
Ajax请求受浏览器的同源策略限制。您无法通过与运行脚本的页面不在同一域中的ajax直接与服务器通信。 因此,您需要使用jquery ajax中的jsonp功能:
$(document).ready(function () {
function getFeed(url) {
$.ajax({
url: 'https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=' + url,
crossDomain: true,
dataType: 'jsonp',
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
}
getFeed('http://www.nytimes.com/services/xml/rss/nyt/Science.xml');
});
dataType:'jsonp'是这里的关键字。
您可以在此处详细了解搜索“jsonp”: http://api.jquery.com/jQuery.ajax/
或在这里: http://bob.ippoli.to/archives/2005/12/05/remote-json-jsonp/
答案 1 :(得分:0)
$.getJSON()
。由于 拉胡