電気ウナギ的○○

About Home

JavaScript 内から外部 CGI を参照する

shinoda (2014年4月11日 09:49)
外部 CGI から結果を取ってきて、JavaScript の中でその結果をほげほげしたい。

とりあえず、「JavaScriptで外部サイトのファイルを取得するためのTips」というサイトを参考にして、CGI で吐出される結果を JavaScript 内に取り込んでくるところまでテストしてみた。

実際に JavaScript で外部のサーバを参照(CGI や PHP の結果を取得)しようとすると、自ドメインのサーバ以外は「クロスドメイン制約」というセキュリティ上の制限が発生する。要は、www.exsample.co.jp サーバで実行される JavaScript から www.exsample.com の CGI は参照できないってことね。
これはサブドメインでも制限を受けるので、www.exsample.co.jp から www2.exsample.co.jp を参照する場合もアウト。

で、JSONP とか使って自力でこの制限を回避するスクリプトを書くことは出来るが、けっこう複雑なものになるので、jquery.xdomainajax.js を使うのが便利とのこと。

#!/usr/bin/perl

@t = localtime();
$t[5] += 1900;
$t[4] += 1;

print "Content-type: text/plain; charset=UTF-8\n\n";
print "$t[5]/$t[4]/$t[3] $t[2]:$t[1]:$t[0] Now!";

# END

という CGI を、下記のように JavaScript から呼び、結果をアラート窓で表示するだけの処理をしてみた。

<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>外部CGI呼び出し</title>
        <meta name="description" content="テストです">
        <meta name="viewport" content="width=device-width, initial-scale=1">

<script type=text/javascript src=https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js></script>
<script type=text/javascript src=https://github.com/jamespadolsey/jQuery-Plugins/raw/master/cross-domain-ajax/jquery.xdomainajax.js></script>

<script type=text/javascript>
uri = 'http://test.exsample.jp/cgi-bin/test.cgi';
$.get(uri, function(data) {
alert(data);
});
</script>

</head>
<body>
<p>Dummy</p>
</body>
</html>

結果はバッチリじゃん。

20140411_alert1.jpg

最初に実行した時は、ブラウザ下部に「安全な接続を確立しています」と出てけっこう結果が返ってくるまで待たされた。
二回目以降の実行ではサッと結果返ってくるようになったけどな。これは留意しておいたほうがいいかも。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2914

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE