L'appel de service web asmx à l'aide de JQuery avec des paramètres causes d'erreur 500

J'ai un assez simple service web:

        [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
        [WebMethod]
        public string GetToken(string a)
        {
        }

Et je suis l'appelant côté client à l'aide de JQuery:

    $.ajax({
        post: 'GET',
        contentType: "application/json; charset=utf-8",
        dataType: 'json',
        url: '../url/GetToken',
        data: "{'a':'test'}",
        success: function (data) {
        },
        error: function (a, b, c) {
        }
    });

L'appel échoue toujours et l'erreur renvoyée est de 500 Erreur Interne du Serveur. J'ai placé un point d'arrêt à l'intérieur du service web, et le code n'est pas atteint du tout. Quand je modifie le service web à aucun des arguments à tous (et à la suppression de la data élément de l'JQuery appel) l'appel réussit. J'ai joué un peu avec les différentes manières de passer le data élément; j'ai passé un objet JSON (pas de guillemets), et j'ai enlevé les guillemets autour de la a argument. Rien de tout cela fonctionne.

Edit:

À l'aide de Fiddler, j'ai déterminé que l'erreur causant la 500 est non Valide "appel de service web, manquant de valeur pour le paramètre".

Edit 2:

De transmettre les données de cette façon œuvres:

data: "a='test'"

Je n'ai aucune idée pourquoi. Des idées?

  • Êtes-vous de retourner quoi que ce soit dans le GetToken méthode, juste de ne pas le montrer?
  • Oui, je le suis. Le service web renvoie une chaîne de caractères.
InformationsquelleAutor System Down | 2013-02-11