HOME > WEBプログラム覚書 > XMLHttpRequestってUserAgentを変更できないのかorz
XMLHttpRequestってUserAgentを変更できないのかorz
セキュリティ的に禁止してるんだろうけどChromeでは出来ないのか、そもそもJavascriptの仕様として禁止されてるのかは不明。
User Agentを変更してget
このサイトはUserAgentで返すHTMLを変更してるので、UserAgentを変更してajaxを実行するコードを書いてみる。(jQueryとjQuery UIを使用)
$( function ( ) {
$( 'button#Get01' ) .on ( 'click' , function ( ) {
$.ajax ( '/pg/' , {
beforeSend: function ( request) {
request.setRequestHeader ( 'User-Agent' , 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_4 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8K2 Safari/6533.18.5' ) ;
} ,
type: 'html' ,
success: function ( data, status) {
$( '#Screen01' ) .html ( data) .dialog ( {
title: 'Smartphone' ,
show: 'clip' ,
width: 640 ,
height: 680 ,
modal: true
} ) ;
}
} ) ;
} ) ;
} ) ;
<button id = "Get01" > GetContents</ button >
<div id = "Screen01" >
</ div >
GetContents
上記を実行すると
エラー
Refused to set unsafe header "User-Agent"
ってエラーが出てPC用のHTMLが返ってくる。
Chromeの場合、エクステンション作る場合とかはなんとかできるみたいですが、
サイトとかで使うことはできないっぽいですね。
UserAgent以外にもいろいろ制限されてるみたいですね。
こうなると結局ふつーに利用する場合、こんなPHPを書いてiflameするしかないのかな。
面白くもなんともないけど。
file_get_contents.php
<?php
$data = file_get_contents (
'http://www.kantenna.com/pg/' ,
false ,
stream_context_create ( array (
'http' => array (
'method' => 'GET' ,
'header' => 'User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_4 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8K2 Safari/6533.18.5' ,
) ) )
) ;
echo $data ;
?>
$( function ( ) {
$( 'button#Get02' ) .on ( 'click' , function ( ) {
$( '<iframe src="/storage/pg/ajax-ua/file_get_contents.php" />' ) .dialog ( {
title: 'Smartphone' ,
show: 'clip' ,
width: 640 ,
height: 680 ,
modal: true ,
'open' : function ( ) {
$( this ) .css ( 'width' , '95%' ) ;
}
} ) ;
} ) ;
} ) ;
GetContents
投稿日
2012年5月16日 04:13
カテゴリ
JavaScript | PHP
タグ
エラーコード | 動作確認
トラックバック URL
http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1300
コメント