今、FXトレーダーがあると便利なちょっとしたツールを開発しているのですが、その開発中の技術的メモ。
Ajaxで使用される通常のXMLHttpRequestではセキュリティ上の理由から、現在表示しているページ以外のドメインに対してリクエストを送ることができないが、JavaScriptライブラリのDojoを使うとそれが可能になります。
※Dojoのバージョンは、1.1.1
◆サンプルソース
<script type="text/javascript" src="../dojo/dojo.js"></script> <script type="text/javascript" src="../dojo/io/script.js"></script> <script type="text/javascript"> dojo.require("dojo.io.script"); function test(){ dojo.io.script.get({ url : "http://api.search.yahoo.com/ImageSearchService/V1/imageSearch", content: {appid: "dojoDemo" , output: "json" , results: "20" , query: "beach"}, handleAs: "application/json", preventCache: true, callbackParamName: "callback", load: function(data){ showOutput(data); } }); }; function showOutput(json) { data = json['ResultSet']['Result']; var html = ''; for (var i=0; i < data.length; i++) { html += '<a href="'+data[i].RefererUrl+'">'; html += '<img src="' + data[i].Thumbnail.Url + '" height="100"/>'; } dojo.byId('output').innerHTML = html; } </script>
ブラウザから直接Yahoo!APIを呼び出しています。
参考資料
・[dojo] – 駆け出しプログラマの奮闘記
・ウノウラボ Unoh Labs: Dojoで簡単にクロスドメインAjaxを実現