HOME > WEBプログラム覚書 > XMLHttpRequestってUserAgentを変更できないのかorz

XMLHttpRequestってUserAgentを変更できないのかorz

セキュリティ的に禁止してるんだろうけどChromeでは出来ないのか、そもそもJavascriptの仕様として禁止されてるのかは不明。

User Agentを変更してget

このサイトはUserAgentで返すHTMLを変更してるので、UserAgentを変更してajaxを実行するコードを書いてみる。(jQueryとjQuery UIを使用)

javascript
  1.  $(function(){
  2.   $('button#Get01').on('click', function(){
  3.   $.ajax('/pg/', {
  4.   beforeSend: function(request) {
  5.   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');
  6.   },
  7.  
  8.   type: 'html',
  9.   success: function(data, status) {
  10.   $('#Screen01').html(data).dialog({
  11.   title: 'Smartphone',
  12.   show: 'clip',
  13.   width: 640,
  14.   height: 680,
  15.   modal: true
  16.   });
  17.   }
  18.   });
  19.   });
  20.  });
HTML
  1.  <button id="Get01">GetContents</button>
  2.  <div id="Screen01">
  3.  </div>

上記を実行すると

エラー
  1.  Refused to set unsafe header "User-Agent"

ってエラーが出てPC用のHTMLが返ってくる。 Chromeの場合、エクステンション作る場合とかはなんとかできるみたいですが、 サイトとかで使うことはできないっぽいですね。

UserAgent以外にもいろいろ制限されてるみたいですね。

こうなると結局ふつーに利用する場合、こんなPHPを書いてiflameするしかないのかな。 面白くもなんともないけど。

file_get_contents.php
  1.  <?php
  2.  $data = file_get_contents(
  3.   'http://www.kantenna.com/pg/',
  4.   false,
  5.   stream_context_create(array(
  6.   'http' => array(
  7.   'method' => 'GET',
  8.   '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',
  9.   )))
  10.   );
  11.  echo $data;
  12.  ?>
javascript
  1.  $(function(){
  2.   $('button#Get02').on('click', function(){
  3.   $('<iframe src="/storage/pg/ajax-ua/file_get_contents.php" />').dialog({
  4.   title: 'Smartphone',
  5.   show: 'clip',
  6.   width: 640,
  7.   height: 680,
  8.   modal: true,
  9.   'open': function(){
  10.   $(this).css('width', '95%');
  11.   }
  12.   });
  13.   });
  14.  });

即戦力になるための PHPシステム開発の教科書

作者:マッキーソフト株式会社 | 価格:¥ 3,360

投稿日 2012年5月16日 04:13
カテゴリ JavaScript | PHP
タグ エラーコード | 動作確認
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1300

コメント

コメントする
Name
Email Address
URL