Estoy intentando consumir un método proporcionado por un servicio WCF, mediante una llamada Ajax de jQuery, pero siempre obtengo el error de que la petición no encuentra el servicio.
Lo tengo montado todo en una solución de VS2015, por un lado esta la definición del servicio en un proyecto donde están definidos el ServiceContract, OperationContract, DataContract y DataMember, y luego el servicio Service1.svc que implementa los métodos definidos en el contrato. Por otro lado tengo un proyecto en ASP.NET que es el que actúa como cliente (consume el servicio), desde este proyecto utilizo una petición Ajax que la invoca un botón, esta petición lo que hace es intentar ejecutar un método proporcionado por el servicio.
Mi llamada AJAX:
Código Javascript:
Ver original
$("#LlamadaAjaxServicio").click(function() { $.ajax({ type: "POST", url: "Service1.svc/ObtenerDatos", // Location of the service data: '{"dni": "' + 7 + '"}', crossDomain: true, contentType: "application/json", ver dataType: "json", processdata: true, success: function (msg) { $("#label").val(msg.d.Name); }, error: function () { alert("error"); } }); }); });
Código C:
Ver original
[ServiceContract] public interface IDatos { [OperationContract] Datos ObtenerDatos(int dni); } // Use a data contract as illustrated in the sample below to add composite types to service operations. [DataContract] public class Datos { [DataMember] public int Dni { get; set; } [DataMember] public string Name { get; set; } [DataMember] public string Surname { get; set; } }
Service1.svc
Código C:
Ver original
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service1 : IDatos { public Datos ObtenerDatos(int dni) { Datos dt = null; dt = new Datos(); dt.Dni = dni; dt.Name = "Nombre"; dt.Surname = "Apellido"; return dt; } }
El problema que tengo es que no encuentra el servicio. ¿Estoy construyendo más la url de la petición? ¿Podría alguien orientarme un poco?
Gracias.
Saludos