ASP.NET service web à tort retourne XML au lieu de JSON

Je suis d'essayer d'utiliser un service web ASMX à partir de javascript à l'aide de jQuery. Il fonctionne très bien lorsque je demande pour le XML, mais je tiens à faire usage de .net la sérialisation JSON fonctionnalité; (on commence aussi à me gonfler que ce n'est pas de travail)

Le code du service web:

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

[WebService()]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class SimpleService : WebService
{
    [WebMethod]
    public String GetString()
    {
        return "value";
    }
}

Le code pour le client:

$.ajax({
  type: "POST",
  url: "SimpleService.asmx/GetString",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json"
});

Et la réponse...

Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET

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

La demande réussit toujours, mais jQuery me donne une erreur de l'analyseur (il n'est pas surprenant, compte tenu de la réponse).

Je suis à bout de ressources. J'ai essayé d'ajouter un ServiceMethod attribut avec le ResponseType mis en JSON, mais rien ne semble fonctionner.

Je ne veux pas utiliser le .NET ScriptManager javascript générateur soit, merci donc de ne pas suggérer de les utiliser.

OriginalL'auteur Evan Larkin | 2011-01-30