6 votes

Appeler des webservices C# à partir de javascript et les consommer (format json)

J'ai créé un webservice en c# et j'essaie de l'appeler et de le consommer à partir d'un script javascript, quelle est la façon ou la meilleure façon de le faire, merci d'avance. Je vais vous expliquer plus en détail : voici le service web :

 public class DocumentInfo : System.Web.Services.WebService
{

    [WebMethod(EnableSession = true)]
    [ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public string GetDocumentInfo(string id)
    {
        Document document = new Document(Int32.Parse(id));    
        string output = JsonConvert.SerializeObject(document);
        return output;
    }
}

Je l'ai testé, il fonctionne, mais lorsque j'ai essayé les solutions ajax suggérées, j'ai obtenu cette erreur 500 Internal Server Error.

5voto

Talha Points 7596

Lire quelques tutoriels

http://encosia.com/using-jquery-to-consume-aspnet-json-web-services/ http://weblogs.asp.net/jalpeshpvadgama/archive/2010/08/29/calling-an-asp-net-web-service-from-jquery.aspx

function TestService() 
{              
    try 
      {

       $.ajax({
         type: "POST",
         url: "http://webserviceURL.asmx/YourWebMethodName",
         data: "{'abc':'" + 123 + "'}", // if ur method take parameters
         contentType: "application/json; charset=utf-8",
         success: SuccessTestService,
         dataType: "json",
         failure: ajaxCallFailed
      });
    }
    catch (e)
    {
        alert('failed to call web service. Error: ' + e);
    }
}

function SuccessTestService(responce) {
    alert(eval(responce.d));
}

function ajaxCallFailed(error) {
        alert('error: ' + error);

    }

1voto

alexandernst Points 2282

Vous devez effectuer une requête AJAX et attendre le rappel pour recevoir les données.

Un exemple très simple utilisant jQuery :

$.ajax({
  url: "/my_service.cs"
}).done(function(data) { 
  console.log("Received: ", data);
});

0voto

Darren Davies Points 29038

Utilisation jQuery AJAX :

$.ajax({
  url: 'YourServiceURL',
  success: function(data) {
     alert('Web Service Called!');
  }
});

http://api.jquery.com/jQuery.ajax/

0voto

go through this demo project it will help you in multiple direction 

http://www.codeproject.com/Articles/21045/Different-methods-to-call-Web-Services-from-AJAX

Vous pouvez le faire en utilisant la méthode ajax de javascript.

  $.ajax({
                        type: "POST",
                        url: ,//webservice url
                        data: , // if ur method take parameters
                        contentType: "application/json; charset=utf-8",
                        success:{},
                        dataType: "json",
                        failure: {}
                    });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X