0

私は安らかなウェブサービスを持っています。Androidのajaxでローカルのrestfulからjsonを取得したい(webviewを使用)。これはアプリアンドロイドのhtmtファイルのコードajaxです

function Get(){ $.ajax ({

            url: "[http://localhost:31132/api/Customer][1]",
            type: "GET",
            dataType: "json",                
            success: function (data) {                    
                $('#d').append("sucess");
            },
            error: function (request, status, error) {                  
                $('#d').append(error);
            }
        });
    }

このコードはブラウザ上で非常にうまく動作します。しかし、それはアンドロイドでは動作しません。エミュレータ android は API レベル 10 を使用します。

ありがとう

4

2 に答える 2

0

WebサービスのURLで、localhostの代わりに10.0.2.2を使用してみてください。localhostまたは127.0.0.1はエミュレーター/androidデバイスを指しますが、10.0.2.2はホストループバックインターフェイスの特別なエイリアスです(つまり、開発マシンの127.0.0.1)。

http://10.0.2.2:31132代わりに試してくださいhttp://localhost:31132

于 2013-02-20T09:06:30.967 に答える
0

見積もり:

デフォルトでは、WebView はブラウザーのようなウィジェットを提供せず、JavaScript を有効にせず、Web ページのエラーは無視されます。

しましたか:

webview.getSettings().setJavaScriptEnabled(true);

更新Web サービスが標準の Android ブラウザーでそのまま実行されない場合、WebView で実行されないことは驚くことではありません。Android または「デスクトップ」として識別するようにブラウザーを構成したかどうかという問題は残りますが。あなたが投稿したビデオを詳しく調べたわけではありませんが、何らかの (Microsoft?) フレームワークを使用して Web サービスを自分で作成したという印象を受けました。重要な問題は、このフレームワークが送信するユーザー エージェント (ブラウザー ID) などに関して、Android リクエストをどのように処理するかということです。一般に、Android での JavaScript サポートはかなり優れており、適切に作成された AJAX ライブラリはさまざまなプラットフォームに対応できます。したがって、私が最初にすることは

  1. 試行は、UserAgend ID をデスクトップ ブラウザーを偽装するものに設定し、再試行することです。それがうまくいかない場合は、
  2. 特定の構成で Web サービスが実際にクライアントに配信する AJAX ファイルを特定することは重要です。最後に、それがうまくいかない場合は、
  3. WebView が発行するエラー メッセージを確認することをお勧めします。
于 2013-02-20T07:23:11.840 に答える