2013-06-05 3 views
0

J'essaie d'appeler un service Web .NET asmx à l'aide de jQuery. J'ai utilisé les guides here et here et autant que je sache, je les ai suivis à la lettre.Appel du service Web asmx à l'aide de jQuery

Code de service:

[WebService(Namespace = "http://tempuri.org/", Description = "...")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
[ScriptService] 
public class MyService : WebService 
{ 

    private static readonly IKernel NinjectKernel = new StandardKernel(new IocModule()); 

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    [WebMethod] 
    public string HelloWorld(string name) 
    { 
     return string.Format("Hello {0}", name); 
    } 

je peux heureusement parcourir au service dans Firefox et invoquer la méthode HelloWorld.

client jQuery:

if (ajaxRunning) { 
     return; 
    } 
    ajaxRunning = true; 

    var webMethod = "http://localhost:51546/MyService.asmx/HelloWorld"; 
    var inputname = "Jack"; 

    $("[id$='spinner']").show(); 
    $("[id$='spinnerText']").show(); 

    $.ajax({ 
     type: "POST", 
     url: webMethod, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     data: {name: inputname}, 
     success: function (msg) { 
      $("[id$='spinner']").hide(); 
      $("[id$='spinnerText']").hide(); 
      ajaxRunning = false; 
      alert(msg.d); 
     }, 
     error: function() { 
      $("[id$='spinner']").hide(); 
      $("[id$='spinnerText']").hide(); 
      ajaxRunning = false; 
      alert("Fail"); 
     } 
    }); 

Quand je lance le javascript il n'y a pas d'erreurs dans Firebug, juste l'alerte Fail pop-up. S'il vous plaît dites-moi si je fais quelque chose qui ne va pas?

Merci à l'avance

Répondre

1

Nécessité de stringify les paramètres envoyés au WebService. Le :

data: {name: inputname} 

ont besoin d'être remplacé par:

data: JSON.stringify({name: inputname}) 
Questions connexes