2012-08-27 79 views
0

我正在製作一個jQuery Mobile和PhoneGap應用程序。我需要提交一份表格。我做了這樣的事情:JSONP不工作

$.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]錯誤消息。但我不知道如何:)

+1

如果webservice沒有返回JSON-P,那麼你不能使用JSON-P! – Quentin

回答

0

昆汀是正確的。這是一個服務器端問題。當使用JSONP請求時,服務器必須以json格式提供響應,而不僅僅是狀態碼。它足以添加true和false(正確的json格式)作爲響應。