2012-08-27 2 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으로 변경하려고했습니다.

불행히도 서버 측 코드에 액세스 할 수 없습니다. 나는이 짧은 "병아리"를 가지고있다. 웹 서비스는 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

웹 서비스가 JSON-P를 반환하지 않으면 JSON-P를 사용할 수 없습니다! – Quentin

답변

0

Quentin이 옳았다. 그것은 서버 측 문제였습니다. JSONP 요청을 사용할 때 서버는 상태 코드뿐만 아니라 json 형식으로 응답을 제공해야합니다. 응답으로 true와 false (적절히 json 형식)를 추가하는 것으로 충분했습니다.

관련 문제