我正在尝试开发一个JQuery插件,该插件将访问外部XML Feed并显示结果。以下是我到目前为止的情况:
HTML标头包含
<script language="javascript" src="jquery.rss.js" type="text/javascript"></script>
JQuery Ready
<script type="text/javascript">
$(document).ready(function() {
$("#rss").rss({count:6,loading_text:"loading"});
});
</script>
插件(jquery.rss.js)
(function($) {
$.fn.rss = function (o) {
var s = {
count: 6,
loading_text: null,
};
if(o) $.extend(s,o);
return this.each (function () {
var list = $('<ul class="rss">').appendTo(this);
var loading = $('<p class="desc"><center><img src="loading.gif" height="19" width="18" border="0"><br>'+s.loading_text+'</center></p>');
var items = 0;
var url = 'http://www.example.com/feed.xml;
if (s.loading_text) $(this).append(loading);
$.get(url,{},function(data){
if (s.loading_text) loading.remove();
$('forecastday',data).each(function(i){
var title = $(this).find("title").text();
var description = $(this).find("description").text();
list.append('<li>' + title + ' - ' + description + '</li>');
items++;
if(items == s.count) last;
});
});
});
}
})(jQuery);
在尝试执行$ .get之前,所有内容似乎都正常工作,此时似乎没有返回任何内容。我已经通过使用alert()验证了从$ .get请求中调用了正确的URL。
希望我不远,JQuery大师可以指出我哪里出错了。在此先感谢您的帮助!
答案 0 :(得分:1)
你不能跨域执行ajax请求。开发一个服务器端代理(部署在同一主机上),将您的请求路由到wunderground或查找支持JSONP的API。
另见 - API to get weather based on longitude and latitude coordinates
答案 1 :(得分:1)
查看这个jQuery插件:jdigiclock。它使用代理来获取和解析XML数据并将其提供给jQuery脚本。我想,你正在寻找它是一回事。