Foros del Web » Programando para Internet » Jquery »

asmx webservice y ajax cross domain

Estas en el tema de asmx webservice y ajax cross domain en el foro de Jquery en Foros del Web. Hola tengo un problema al consumir un web service asmx con ajax y jquery de dominios diferentes, el asunto es que necesito consumer el web ...
  #1 (permalink)  
Antiguo 12/07/2013, 17:59
 
Fecha de Ingreso: septiembre-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 1
asmx webservice y ajax cross domain

Hola tengo un problema al consumir un web service asmx con ajax y jquery de dominios diferentes, el asunto es que necesito consumer el web service desde una aplicación phonegap y el web service esta en el servidor

llamada desde el cliente
Código Java:
Ver original
  1. $.ajax({
  2.                     type: 'POST',
  3.  
  4.                     url: "http://localhost:4280/g12_0/reparto.asmx?op=hola",
  5.                     data: "{'nombre':'efenix'}",
  6.  
  7.                     contentType: "application/json; charset=utf-8",
  8.                     dataType: "jsonp",
  9.                     crossDomain: true,
  10.  
  11.                     success: function (msg) {
  12.                         alert(msg);
  13.                     },
  14.                     error: function (msg) {
  15.                         alert(JSON.stringify(msg));
  16.                     }
  17.                 });

codigo del webservice
Código ASP:
Ver original
  1. namespace reparto
  2. {
  3.     /// <summary>
  4.     /// Summary description for reparto
  5.     /// </summary>
  6.     [WebService(Namespace = "http://tempuri.org/")]
  7.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  8.     [System.ComponentModel.ToolboxItem(false)]
  9.     // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
  10.     [System.Web.Script.Services.ScriptService]
  11.     public class reparto : System.Web.Services.WebService
  12.     {
  13.  
  14.         [WebMethod(), ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
  15.         public string hola(String nombre)
  16.         {
  17.             return "Hola " + nombre + "!!!.";
  18.  
  19.         }
  20. }
  21. }

se supone que debe regresarme la frase "Hola efenix!!!."

pero en cambio tengo otra respuesta
"{"readyState":4,"status":200,"statusText":"succes s"}"

investigando estos datos supuesta mente hace bien la conexión pero lo que esta mal es el formato de los datos de la respuesta que probablemente no tengan un formato jsonp pero la verdad no se cual sea el problema

esto meaparece en la consola de firefox cuando presiono el boton que tiene estafuncion
http://localhost:4280/reparto.asmx?op=hola&callback=jQuery17107195009484 187643_1373673566639&{%27nombre%27:%27efenix%27}&_ =1373673567933

uso jsonp por que la llamada es de dominios diferentes

cualquier ayuda es bien recibida
  #2 (permalink)  
Antiguo 13/07/2013, 13:15
 
Fecha de Ingreso: septiembre-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: asmx webservice y ajax cross domain

que tal
investigando mas me encontre esta pagina con un ejemplo que si funciona
entonces he llagado a la conclusion de que el fallo esta en la cadena de la url y/o en la respuesta del asmx

el codigo anteriror con estos datos funciona correctamente

Código Javascript:
Ver original
  1. url: "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
  2. data: {tags: "mount rainier",
  3. tagmode: "any",
  4. format: "json"},

la pagina del ejemplo es esta http://api.jquery.com/jQuery.getJSON/

bueno seguire investigando,se aceptan sugerencias y respuestas
saludos!!
  #3 (permalink)  
Antiguo 17/07/2013, 11:33
 
Fecha de Ingreso: septiembre-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: asmx webservice y ajax cross domain

ya pude conectar mi web local con mi webservice asmx con jsonp

del ajax estas son las modificaciones
Código Javascript:
Ver original
  1. url: "http://localhost:4232/reparto.asmx/hola",
  2. data: { nombre: "efenix"},

en el webmethod del asmx
Código Javascript:
Ver original
  1. [WebMethod]
  2.         public void hola(String nombre)
  3.         {
  4.             var serializer = new JavaScriptSerializer();
  5.             var myText = "hola " + nombre + "!!!.";
  6.             HttpContext.Current.Response.Write(HttpContext.Current.Request["callback"] + "(" + serializer.Serialize(new { respuesta = myText }) + ")");
  7.  
  8.         }

y tube que agregarle a mi webconfig estas lineas dentro de la etiqueta sistem.web
Código ASP:
Ver original
  1. <webServices>
  2.       <protocols>
  3.         <add name="HttpGet"/>
  4.         <add name="HttpPost"/>
  5.       </protocols>
  6.     </webServices>

pero ahora tengo otra duda, como poder pasar archivos con este metodo en concreto archivos xml, he visto que se pueden pasar imagenes desde ajax a php pero todavia no se como hacerlo con xml a asmx de c#

Etiquetas: ajax, javascript, webservice
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.