Twitterの/homeのHTMLがXMLHttpRequestで取れなくなってる件

XMLHttpRequestで取りにいくと、HTMLではなくPrototype.jsのElement.replace関数を使った部分更新のscriptを返してくるようになった。
なので、http://twitter.com/homeで以下のコードを実行すると、
タイムラインの部分が部分更新される。

jQuery.ajax({
		type:'GET',
		url:'http://twitter.com/home',
		dataType:'text',
		success:function(script){
			eval(script);
		}
	});

リクエストヘッダのX-Requested-Withに「XMLHttpRequest」を設定しているのが原因だと思うので、
送信前に上書きしてみることにした所、FirefoxではHTMLを取得できたが、
OperaGoogle Chromeでは相変わらずscriptが返ってきた。

jQuery.ajax({
		type:'GET',
		url:'http://twitter.com/home',
		dataType:'text',
		beforeSend:function(xhr){
			xhr.setRequestHeader('X-Requested-With','');
		},
		success:function(html){
			console.info(html);
		}
	});

これらのブラウザではXMLHttpRequestのsetRequestHeaderメソッドでリクエストヘッダの上書きができないのだろうか?


いろいろと面倒くさいので、部分更新するscriptをevalするスコープ内で、
Element.replace関数を上書きすることで解決した。

jQuery.ajax({
		type:'GET',
		url:'http://twitter.com/home',
		dataType:'text',
		success:function(script){
			var Element = 
			{
				replace:function(id,html){
					if(id!='timeline')return;
					this.html = html;
					throw new Error();
				}
			};
			try{
				eval(script);
			}catch(e){}
			console.info(Element.html);
		}
	});