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 回答