【質問事項】どのような問題ですか?
jsWaffleを使用してGoogle App EngineとAjax(非同期)通信のテストを行って
みました。
Eclipse環境ではAppEngine側のrun configurationのargumentsでIPアドレスを
指定してjsWaffleからAppEngineへの非同期通信ができましたが、クラウド上の
プログラムとは通信できませんでした。
お聞きしたいのは
1.jsWaffleからApp Engineへの接続・通信は可能でしょうか。
2.また可能な場合は、その方法を教えて頂けるでしょうか。
>TODO
【再現方法】サンプルソース、再現手順など
>TODO
【調べた事】ここまで調べてみました
>TODO
【jsWaffleバージョン】確認したjsWaffleバージョン
>TODO
【Androidのバージョン】確認したAndroidバージョン
> Android OS 1.6/2.2/2.3/3.0
通常のXMLHttpRequestを使った非同期通信だと、
クロスサイト制約のため、他の通信できません。
そのため、jsWaffleでは、独自APIを使うことで、さまざまなサイトへのリクエストが可能となっています。
~~~
droid.httpGet(url, fn_ok, fn_ng) 非同期でURLにアクセスして結果を得る
droid.httpDownload(url, file, callback) URLのファイルをダウンロードする
droid.httpPost(url, obj, callback) 非同期でURLにデータをポストする
~~~
詳細) http://d.aoikujira.com/jsWaffle/wiki/index.php?%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%252FHTTP
独自APIは使用しています。下記コードは独自APIを使用してEclipse環境で
GAEとjsWaffleのプロジェクトを起動してデータ登録成功したときのコード
(wwwフォルダのindex.html)です。
他にdroid.httpGetでの参照もうまくいっています。
通常のGAEアクセスとデータのセットが異なっていますが
これは、gaedirectというサーバ側コーディング不要のGAEツールを使用
しているためです。ただし、実際のクラウド上の同一プログラムをアクセス
するようにすると不成功になります。
<script type="text/javascript">
var ring_flag = false;
var url = "http://192.168.2.130:55750/gaedirect";
function addkvs() {
var query = {};
query["op"] = "add";
query["kind"] = "gaekvs";
query["key"] = "k02";
query["id"] = "class,te:name,in:price";
query["val"] = "xxx"+"<p>"+"プリンタ1"+"<p>"+"3200";
droid.httpPost(url,query,function(res){alert(res);});
}
: