jQueryの$.ajax()でブログRSSを取得させる前にURLは統一させておく

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を利用するとドメインが統一されていなくても表示される、というか別ドメインのデータも引っ張れるので便利ですので、状況に応じてこちらを利用するとよいのかなと。

XML表示テスト

カテゴリー: javascript   作成者: hello パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA