<script> $(document).ready(function(){ // ドキュメントを開いた時にボタンクリックのハンドラを登録 $("#button").click( function() { $.ajax({ url: "http://spreadsheets.google.com/feeds/cells/xxxxxxxxxx/1/public/basic", dataType: "jsonp", data: { "alt" : "json-in-script" }, success: function(data) { alert("成功"); }, error: function(xhr, options, error) { alert(error); } }); }); }); </script>
何が問題?
Mac上のChromeやSafariでは問題なく動作するしかし PhoneGap → iPhone Simulator で動かすと ajax()を呼んだ直後に error callbackが呼ばれる。
errorのメッセージは、「JQuery8888888_88888 was not called」みたいな感じ。
修正(回避?)方法
結論からいうと、PhoneGap3の場合、次のようにすると直った
- iPhone Simulator上の古いアプリを削除する
- platforms/iosフォルダを削除する
- www/config.xml の中の accessタグを探して <access origin="*" /> に変更する
- ビルドして実行
注意!
- PhoneGap2のときは、platforms/ios/AppName/Cordova.plist を編集すればOKだったみたいだが、PhoneGap3ではそのファイルは無くなっている
- セキュリティを考慮して、<access origin="*.google.com" /> のようにアクセス先を限定すると動作しない。要調査だがひとまず保留。
0 件のコメント:
コメントを投稿