Consumare il servizio Web ASP.NET da un phonegap

Ciao, ho cercato di consumare un servizio Web scritto in ASP.NET da un'applicazione phonegap-android, ma sembro che stia facendo un errore in qualche modo da qualche parte.

Vale la pena ricordare che questo non riesce quando l'ho eseguito sull'emulatore android da eclipse. Ho già provato lo stesso codice da un browser web e funziona bene.

  • DrawerLayout non funziona con Android 4.4 e SurfaceView
  • Rinominare i moduli in Android Studio?
  • get l'ID nul dispositivo durante la logging a gcm
  • Animare la width di cambio di android RelativeLayout
  • Android Bluetooth Serial / RFCOMM / SPP, Come modificare la BAUD RATE?
  • Perché gli emulatori Android sono numerati come 5554
  • Ecco la parte di Index.html che è pertinente per la domanda

    /* Here i declare 'webServiceURL' which holds the path to the service that's hosted at 10.0.0.174 (WLAN ip of my computer). I use this instead of 127.0.0.1 because on a mobile phone localhost points to the phone itself. */ // Here i declare 'datos' which are the parameters sent to the web service method $.ajax({ url: webServiceURL + "InicioSesion", type: "POST", contentType: "application/json; charset=utf-8", data: JSON.stringify(datos), dataType: 'json', beforeSend: function() {$.mobile.loading('show')}, complete: function() {$.mobile.loading('hide')}, success: function (data, textStatus, jqXHR) { // Here i do stuff with 'data' }, error: function (jqXHR, textStatus, errorThrown) { // Here i print errors }, )}; 

    Accesso all'authorization di origine di accesso aggiunta a phonegap config.xml

     <access origin="*"/> 

    Modifiche al web.config del servizio Web ASP.NET

     <system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> </customHeaders> </httpProtocol> </system.webServer> 

    L'errore che sto affrontando è che quando imposta 'dataType' a 'json' (che è quello che mi aspetto) la richiesta ajax fallisce e la printing di 'textStatus' mi dà ParserERROR .

    Quindi ho provato a usare 'dataType' come 'text' invece di 'json' per vedere se ci fosse qualcosa di sbagliato con la risposta del servizio Web e ho capito che il problema era che la risposta era NULL.

    RICORDATE ciò che ho detto, questo codice funziona perfettamente in un browser Web, non riesce a utilizzare la function di phonegap in esecuzione dall'emulatore android.

    Se qualcuno con un po 'di esperienza che usa phonegap per consumare un servizio Web ASP.NET potrebbe forse aiutarmi !. Non ho idea di quello che mi manca o di fare male !. Ho lavorato su questo per 2 giorni e non riesco a trovare una soluzione!

  • Imansible trovare la properties; 'xxxx' su com.android.build.gradle.AppExtension_Decorated
  • GoogleAnalytics.getInstance (questo) non risponde
  • Quali licenze sono le librerie di supporto Android rilasciate?
  • Dimensione dello schermo Android HDPI, LDPI, MDPI
  • Come trasportre i contenuti autenticati con MediaPlayer su Android
  • Aggiungi la vista del text alla disposizione?
  • 2 Solutions collect form web for “Consumare il servizio Web ASP.NET da un phonegap”

    Ho capito l'errore che stavo facendo! .

    Sull'authorization di origine di accesso aggiunta a phonegap config.xml stavo mettendo:

     <access origin="*"/> 

    Che è errato !, il modo giusto per metterlo è con un punto ('.') Prima dell'astice ('*'):

     <access origin=".*"/> 

    E questo è tutto! PROBLEMA SOLVED! .

    Potrebbe essere necessario adornare il tuo servizio web con [System.Web.Script.Services.ScriptService] per renderlo disponibile ai client javascript.

    Esempio:

     [WebService(Namespace = "http://tempuri.org/&quot;)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class dummyWebservice : System.Web.Services.WebService { [WebMethod()] public string HelloToYou(string name) { return "Hello " + name; } [WebMethod()] public string sayHello() { return "hello "; } } 

    Origine e ulteriori informazioni / esempi: http://vincenthomedev.wordpress.com/2009/02/10/consuming-an-aspnet-web-service-or-page-method-using-jquery/

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.