0

jQuery Mobile と PhoneGap アプリを作成しています。フォームを送信する必要があります。私はこのようなものを作りました:

$.ajax(
                {
                url: 'http://ip.ip.ip.ip:8070/services/rest/operator/login',//?email=' + email + '&password=' + haslo,
                dataType: 'jsonp',
                type: 'GET',
                callback: 'jsonpCallback',
                jsonpCallback: 'jsonpCallback',
                jsonp: '_jsonp',
                data: ({'email' : email, 'password' : pass}),
                contentType: 'application/x-www-form-urlencoded',

                success: function (data) {
                    window.location = ('file:///android_asset/www/custom/main.html');
                },

                error: function (data) {
                    alert('Login i/lub hasło nieprawidłowe '+data);
                }
            });

Chrome では動作しますが、私の Android デバイスでは動作しません。PhoneGap と jQuery Mobile の両方のドキュメントを読み、$.mobile.allowCrossDomainPages と $.support.cors をホワイトリストに登録してみました。PhoneGap がクロスドメインを許可することを知っているので、データ型を json に変更しようとしました。

残念ながら、サーバー側のコードにはアクセスできません。私はこの短い「wadl」を持っています。Web サービスは 200 成功または 401 アクセス拒否を返します。

<resource path="/operator">
     <resource path="/login">
          <method name="GET">
                <request>
                     <representation mediaType="application/x-www-form-urlencoded">
                          <param name="email" style="query" type="xs:string"/>
                          <param name="password" style="query" type="xs:string"/>
                     </representation>
                </request>
                <response>
                     <representation mediaType="application/octet-stream"/>
                </response>

私は何が欠けていますか?

注: [object Object] エラー メッセージを受け取ったのは一度だけです。しかし、私は方法がわかりません:)

4

1 に答える 1

0

クエンティンは正しかった。サーバー側の問題でした。JSONP リクエストを使用する場合、サーバーはステータス コードだけでなく、json 形式でレスポンスを提供する必要があります。応答として true と false (適切に json 形式) を追加するだけで十分でした。

于 2012-08-29T09:47:05.543 に答える