2010-01-29 6 views
1

Ai-je oublié quelque chose? J'essaye de créer un service Web et un consommateur dans asp.net, en utilisant JSON avec JQuery, mais je n'ai pas de chance. Je peux demander à JQuery d'appeler le service et demander au service de répondre, mais la réponse passe toujours par le rappel "error" dans JQuery. Lorsque je vois la réponse dans FireBug, il semble que ce soit XML, pas JSON. Voici mon service et le JQuery pertinent du client. Toute aide serait appréciée:Problème avec le service Web ASP.NET et le client JQuery




using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Web.Script.Services; 

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ScriptService()] 
public class ajaxService : System.Web.Services.WebService { 

    [WebMethod()] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string HelloWorld() 
    { 
    return "Hello World"; 
    } 
} 

*********************** 
JQuery 
*********************** 
$(document).ready(function() 
{ 
    $.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    data: "{}", 
    url : "ajaxService.asmx/HelloWorld", 
    success : function(msg) { alert("success " + msg.d); }, 
    error : function(err) { alert(err.status + " : " + err.statusText); } 
    }); 
}); 

La réponse indique toujours "OK: 200", et le contenu de la réponse est:

 
<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://tempuri.org/">Hello World</string> 
+0

J'ai vérifié et re-chec ked comment je le fais et il n'y a aucune différence entre ce que vous faites et mon code qui fonctionne. – epitka

Répondre

1

En fait, j'ai trouvé la réponse ici: http://forums.asp.net/p/1054378/2338982.aspx#2338982

Non sûr où ce gars a trouvé la réponse, mais vous devez ajouter ceci à web.config:

 
<httpHandlers> 
<remove verb="*" path="*.asmx"/> 
<add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/> 
</httpHandlers> 
Questions connexes