2013-03-11 2 views
0

J'ai vu beaucoup de réponses différentes sur le web et j'ai fait beaucoup de copier-coller. Ça ne marche tout simplement pas pour moi. Quelqu'un peut-il me dire pourquoi? Je suis tellement frustré> _ < Dois-je faire quelque chose dans mon fichier web.config? Je ne comprends pas que même mon "WebService.asmx/add" ne retournera rien de mon navigateur (parce qu'il n'y a pas un tel lien.) Comment jQuery obtiendrait-il un résultat? Je dois ajouter des httphandlers, non? enter image description hereComment consommer un service Web asmx avec jQuery?

+0

veuillez utiliser "ouvrir l'image dans un nouvel onglet" pour agrandir l'image. –

+0

S'il vous plaît modifier la question et afficher le code –

+0

et si vous ouvrez simplement la même URL dans une fenêtre de navigateur? –

Répondre

1

Comme je le vois dans votre image, votre méthode web n'a pas de méthode statique. Un webmethod devrait être une méthode statique, afin de consommer un service. WebMethod and Static

[WebMethod] 
Public static string HelloWorld() 
{ 
return "Hi"; 
} 

S'il vous plaît passer par ce lien pour plus d'informations

  1. WebService and Jquery
+0

J'ai ajouté statique. jQuery ne fonctionne toujours pas. et après l'ajout de statique, WebService ne listera pas la méthode statique dans sa liste d'opérations –

+0

@Ravi: Le lien que vous fournissez comme référence sert à ajouter une méthode Web statique dans une page, pas un service Web. – derloopkat

0

Je ne sais pas si je suis être haï ou quoi. Il n'y a juste pas de personnes qui me répondent. Très triste. ...> _ < ... Après des jours de recherche, j'ai trouvé une certaine façon de travailler L'attribut besoin de sérialisation des données sous forme de chaîne JSON est

[System.Web.Script.Services.ScriptService] 

j'ai donc mon code asmx comme

<%@ WebService Language="C#" Class="WebService" %> 

using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Web.Script.Services; 
using System.Data; 
using System.Data.SqlClient; 
[System.Web.Script.Services.ScriptService] 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
public class WebService : System.Web.Services.WebService { 

[WebMethod]  
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string HelloWorld() { 
    return "Hello World"; 
} 
[WebMethod]  
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public int add(int a, int b) 
{ 
    return a + b; 
} 

}

mon code jQuery

 $(
     function() { 
      $.ajax({ 
       type: "POST", 
       url: 'WebService.asmx/add', 
       data: "{'a':15, 'b':20}", //be careful! do pass it as a string 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        alert(msg.d); 
       }, 
       error: function (e) { 
        alert("WebSerivce unreachable"); 
       } 
      }); 
     } 
    ); 

qui a renvoyé correctement 35.

NICE!

+0

PS: ne déclarez pas de méthode statique qui ne fonctionnera pas !! –

Questions connexes