0

Android の phonegap でアプリケーションを開発しようとしています。

私がやろうとしているのは、アプリケーションから Web サービスを呼び出すことです。これはデータ アクセスに使用されます。

これを行う方法についてオンラインで多くのシートを見つけましたが、見つけた最も単純なものは次のようになります

<script type="text/javascript">
 $(document).ready(function() {
  $.ajax({
type: "POST",
url: "http://www.webservicex.net/stockquote.asmx/GetQuote",
data: "{'usd'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {

  // Insert the returned HTML into the <div>.
  $('#Content').html(msg.d);
}
 });
});

しかし、私が見ることができるのは、すでにdivに入れたテキストだけで、divの内容は変わりません。シミュレーターではなく、Galaxy SIII デバイスで直接テストしています。

4

1 に答える 1

1

私の推測では、failではなくを取得しているため、何も起こらないようsuccessです。エラー ハンドラを追加して、何が起こるかを確認してください。

.fail(function() { alert("error"); })

「クロスドメイン」の問題が発生している可能性があり (別のドメインから ajax を取得しようとしているため) 、dataTypeJSONPの代わりに使用する必要がある場合がありJSONます。の詳細については、この投稿またはドキュメントJSONPを参照してください。

編集:

これは、このコードの動作中のフィドルです。

$(document).ready(function() {

//here is one way using the 'error' handler
    $.ajax({
        type: "POST",
        url: "/failOnPurpose",
        data: "{'usd'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error:function(jqXHR, textStatus) { 
            alert("error:" + textStatus); 
        },
        success: function(msg) {        
          // Insert the returned HTML into the <div>.
          $('#Content').html(msg.d);
        }    
    });

//here is another way using the 'fail' request handler
    $.ajax({
        type: "POST",
        url: "/failOnPurpose",
        data: "{'usd'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",            
        success: function(msg) {        
          // Insert the returned HTML into the <div>.
          $('#Content').html(msg.d);
        }    
    }).fail(function(jqXHR, textStatus) {
              alert( "fail: " + textStatus );
    });

});​
于 2012-10-19T16:41:33.467 に答える