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

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

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

User Agentを変更してget

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

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

コメント

コメントする
Name
Email Address
URL