« PHPサイバーテロの技法 評価 10/10 プログラマ必読 | メイン | AjaxでAmazon検索を同時に100件表示する »
2005年11月28日
プロキシを使わずAmazonデータをAjaxする
Ajax で画面遷移なしの Amazon 検索 : NDO::Weblogという記事で、画面遷移なしの、Ajaxという物をしていたが、AmazonとホームページでURIが異なるために、Ajaxがうまくできずプロキシ的な物を使っていた。これが気になったので、ProxyなしでAjaxするようにしてみる。
サンプル
まだ、チューンがカンペキじゃないので、表示がおかしい場合はリロード
問題点
☆表示するホームページのドメインとAmazonのドメインが異なるために、XMLHttpRequestが許可されない。(セキュリティ上のガードが入る)解決策
XMLHttpRequestをホームページのドメインとそろえる。
Ajax で画面遷移なしの Amazon 検索 : NDO::Weblogでやられているように、リクエストのプロキシを用意する。
ホームページのドメインをAmazonにする
Q.今回採用した方式。え、自分のHPのドメインをAmazonにできるの?A.できる。
XSLTを使ってAmazonをHACK
AmazonのAWSにはXSLTという、XMLをHTMLに変換するサーバがある。これを使って、自分のホームページをAmazonのXSLTサーバに作らせてしまおうというもの。使用したXSLT
<?xml version="1.0" encoding="UTF-8"?>このXSLTは結果がなんであれ、それを自分の意図したHPの内容に置換するXSLT。
< xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2005-10-05">
< xsl:output method="html"
encoding="UTF-8"
media-type="text/html"/>
<xsl:template match="/">
<html>
<head>
<title>Amazon Ads</title>
< link rel="stylesheet" href="http://revilog.com/styles-site.css" type="text/css" />
</head>
<body onLoad="rundo()">
< script type="text/javascript" src="http://s00.kokorohamoe.com/redirect/prototype.js" charset="UTF-8"></script>
< script type="text/javascript" src="http://s00.kokorohamoe.com/redirect/mainscript.js" charset="UTF-8"></script>
< noscript>
このページを見るにはJavascriptをONにする必要があります。<br />
< a href="http://revilog.com/">TOPページ</a>
< /noscript>
< div id="mainid"></div>
</body>
</html>
</xsl:template>
< /xsl:stylesheet>
とにかくAWS
とにかく1度AWSを使って、Amazonに検索をかけ、その結果を上記、XSLTで変換する。 するとURLは以下のようになる。http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=0VE04X4B678E9B60S102&AssociateTag=kokorohamoe-22&Operation=ItemLookup&IdType=ASIN&ItemId=B0007X4MMW&ResponseGroup=Small&ContentType=text%2Fhtml&Version=2005-10-05&Style=http%3A%2F%2Fs00.kokorohamoe.com%2Fredirect%2Fadtop.xsl
最後のadtop.xslが上記ファイル
これを表示させるとアマゾンドメインでありながら、中身はレビログというページができあがる。
あとは、これの上でajaxを走らせると、プロキシ無しでAmazonのページが自由自在にAjaxできるという寸法。
とりあえず、サンプルはできたので
逐次、AmazonとAjaxを充実させてみたいが・・・はて、どうしよう(whttp://revilog.com/rsearch.php/tag=kokorohamoe-22/
関連
Amazon Web サービス ブログはてなダイアリー - Amazon Webサービスとは
はてなダイアリー - Ajaxとは
レビログ::プログラム: ProxyなしでAmazonをAJAXするにRESTを追加しました。 (アイコンレプはふさん)
カテゴリ:[Ajax]
投稿者 kokorohamoe : 2005年11月28日 03:30
トラックバック
このエントリーのトラックバックURL:
http://revilog.com/tb_ping.php/6566
スパム防止のため、当サイトへのリンクの無い記事からのトラックバックを禁止する設定にしてあります。
トラックバックされる場合は、リンクを作成してから、トラックバックを打ってください。








