「SE業務」カテゴリーアーカイブ

XMLHttpRequestでクロスドメインにCookieを送信する

仕事で少し調べたので、その時のメモです。

XMLHttpRequestでクロスドメインにリクエストを送信する時にCookieもリクエストに含めたい場合は以下のように書きます。

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://test.com/rest.php', true);
xhr.withCredentials = true;
xhr.onreadystatechange = function() {
    if(xhr.readyState === 4) {
        var result = xhr.responseText;
        alert(result);
    }
};

3行目の「withCredentials」プロパティをtrueに設定する必要があります。

【ソースコード詳細】

1行目: var xhr = new XMLHttpRequest();

XMLHttpRequestオブジェクトを作成します。

2行目: xhr.open(‘GET’, ‘http://test.com/rest.php’, true);

openメソッドでリクエストを初期化する。左から順にメソッド(GET、POSTなど)、URL、非同期フラグを指定します。

3行目: xhr.withCredentials = true;

withCredentialsプロパティをtrueにセットする(デフォルトはfalse)。これで、Cookieが送れるようになります。

4行目以降: xhr.onreadystatechange = function() {・・・・・・・

非同期通信にしている場合は、readyState プロパティが変わる毎に呼び出されるonreadystatechangeに匿名関数を代入して、readyStateが4(通信完了)になった時に、APIから取得した文字列(responseText)をalertで表示しています。

※注意※

XMLHttpRequest Level2に対応したブラウザでしか使用できません。IE8、IE9とかでは対応できません。

ブラウザごとの対応状況を調べるにこちらの記事↓

HTML5やCSS3のブラウザごとの対応状況の調べ方


JMeterにプロキシサーバを経由させる

Webアプリケーションの性能テストでよく使用されるJMeterをプロキシサーバを経由させて動作させる方法をご紹介します。

この方法は、テスト対象のアプリケーションがプロキシサーバを経由しないとアクセスできない場合に使用します。特に、大抵の会社ではプロキシサーバを設置してインターネットにアクセスしていると思います。

なお、インターネットオプションの設定はJMeterには適用されません。

方法1:パラメータを追加してJMeterを起動する。


JMererを起動するにはjmeter.batを実行しますが、起動する際にプロキシサーバを指定するパラメータを追加します。

「-H」でホスト名 or IPアドレスを、「-P」でポート番号を指定します。

コマンドプロントで書くとこんな感じです。(Cドライブ直下にJMeterを配置した場合です。)

jemterコマンドライン

ただ、毎回書くのは面倒なので、こんな感じのショートカットを作るのが楽だと思います。

ショートカット

なお、ご参考までにホスト名とかポート番号以外に以下のようなパラメータがあります。

-H [proxy server hostname or ip address]
-P [proxy server port]
-N [nonproxy hosts] (e.g. *.apache.org|localhost)
-u [username for proxy authentication – if required]
-a [password for proxy authentication – if required]
Example : jmeter -H my.proxy.server -P 8000 -u username -a password -Nlocalhostt

 

方法2:JMeterの起動バッチに直接パラメータを設定する


JMererを起動するjemter.batに以下の記述があります。

この行にプロキシサーバのホスト名(or IPアドレス)を指定するパラメータを追加します。まずは、jemter.batのバックアップをとっておきましょー。

そして、この行をコピーして貼り付けた後、コピー元の行をコメントアウトします。コメントアウトするには、コメントアウトしたい行の先頭に「rem」を付けます。

コメントアウトしていない方の行の後ろにプロキシサーバのホスト名とポート番号を指定するパラメータを追加します。↓こんな感じです。

方法1の方が簡単でおすすめです。(^―^)

 


Tera Termマクロによる自動ログイン

サーバで作業するために、Tera Termを結構使っています。しかし、毎回手動でログインするのはなかなか面倒です。

Tera Term にはマクロ機能が用意されています。これを設定することで、マクロファイル(.ttl)をダブルクリックするだけでログインすることが可能です。

本記事では、Tera Termマクロによるsshで自動ログインするための設定方法を紹介します。

【Step1】ttlファイルの関連づけ

マクロファイルの拡張子は.ttlです。そのため、.ttlファイルをダブルクリックしてTera Termマクロ(ttpmacro.exe)を実行できるように、関連づけの設定をします。

手順はこちらのページで紹介しています。→拡張子とアプリケーションの関連づけ(Windows7)

【Step2】マクロファイル(.ttlファイル)の作成

関連づけの設定が完了したらあとはマクロファイルを作成します。
以下、テンプレートファイルです。

環境に応じて、以下に部分を設定してください。

  • username:サーバのユーザ名
  • password:パスワード
  • hostname:サーバのホスト名。もしくは、IPアドレス
  • logfilename:Tera Termのコンソールログファイル名
  • /auth:認証方法
  • logdir:Tera Termのコンソールログ出力先フォルダ

ttlファイルができたら、ダブルクリックしてみてサーバにログインできるか確認してみましょう(ノ´д`)

※注意※

マクロファイルにはアカウント情報が含まれますので、流出などしないよう、取り扱い要注意です!