jQueryの$.ajax()でこのブログのRSSを取得、表示させようと試みました。
$(function(){
var blogUrl = 'http://noboruhirabayashi.com/blog/?feed=rss2';
$.ajax({
url : blogUrl,
type : 'GET',
error: function(){
$('#update').html('<span class="error">xmlファイルの読み込みに失敗しました。</span>');
},
success: function(xml){
var blogupdate = $(xml);
blogupdate.find('item').each(function() {
var entry_item = $(this);
var entry_item_title = entry_item.find('title').text();
var li = $('<li />');
li.append(entry_item_title);
$('#update ul').append(li);
});
}
});
});
このような形で、普通なコード。
おかしいところはないのですが、RSSが表示されず...
firebugやwebインスペクタなどで確認すると
〜 is not allowed by Access-Control-Allow-Origin
moz-nullprincipal:*******
といったエラー。
結論としてはURLの「www」の取り扱いでajax()が「noboruhirabayashi.com/blog/?feed=rss2」をとりにいっても自動で「www.noboruhirabayashi.com/blog/?feed=rss2」に転送され、違うドメイン扱いとなり読み込めなくなっている様子。
なので、根本的に解決するため.htaccessでURLを「wwwなし」に統一させることにして(←そんなの先にやっとけよというのはなしということでw)
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.hogemoge\.com
RewriteRule ^(.*) http://hogemoge.com/$1 [R=301,L]
とすると、「noboruhirabayashi.com/blog/?feed=rss2」を取得できて無事表示されます。
google feed APIを利用するとドメインが統一されていなくても表示される、というか別ドメインのデータも引っ張れるので便利ですので、状況に応じてこちらを利用するとよいのかなと。