今、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を実現