Des problèmes avec ASP.net JSON Webservice type de réponse

Je suis tentative d'écriture d'une ASP.net service web qui va être utilisé par un appel AJAX jQuery.
Je suis tout à fait à mon wit's end à essayer d'obtenir ce travail. J'ai vu un certain nombre de questions similaires en ligne, mais je n'ai pas été en mesure de trouver une solution adaptée.

Lorsque je tente de faire de l'appel ajax (via jquery), je reçois une réponse positive à partir du serveur, mais la demande échoue en raison d'une erreur de l'analyseur.

J'ai validé le json renvoyé par le webservice et il est valide. Le problème semble provenir du fait que asp.net retourne l'objet json en xml.

J'ai spécifié le type de retour json à l'aide de

<Script.Services.ScriptMethod(responseFormat:=Script.Services.ResponseFormat.Json)> _

J'ai ajouté la suivante http gestionnaire comme il a été mentionné comme une solution potentielle

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

Le Type de contenu est "application/json; charset=utf-8" et le type de données "json" dans mon jquery ajax d'installation. Le type de la demande semble être correct, mais la réponse est toujours xml.

Je peux en faire la demande avec succès en enlevant le type de données, mais je voudrais bien éviter l'utilisation d'un eval pour désérialiser les données.

Si quelqu'un a des suggestions, je sera grandement apprécié. J'ai été en tirant sur mes cheveux pendant quelques jours sur ce.


JAVASCRIPT

(function($) {
$.ajaxSetup({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    global: false,
    dataType: "json"


});

function auto() { console.log("test"); return; };

$.fn.species = {
    test: function() { alert("test"); },
    load: function() { //load and attach species list to element as dropdown
        $.ajax({
            url: "SpeciesService.asmx/List",
            success: function(msg) { console.log(msg); },
            error: function (xhr, desc, exceptionobj) {
                        console.log(xhr.responseText);
                        console.log(desc);
                        console.log(exceptionobj);

            }
        });
                return this;

    }

}; //Species Block

})(jQuery); //jQuery Alias Bloc

ASP.NET Webservice

<%@ WebService Language="VB" Class="SpeciesService" %>

Importations Système.Web
Les Importations Du Système.Web.Services
Les Importations Du Système.Web.Services.Les protocoles
Les Importations D'Espèces
Les Importations Du Système.Moment de l'exécution.La sérialisation

"Pour bénéficier de ce Service Web pour être appelé à partir d'un script, à l'aide de ASP.NET AJAX, décommentez la ligne suivante.
'_

_
_
Public Class SpeciesService

Inherits System.Web.Services.WebService
<WebMethod()> _
<Script.Services.ScriptMethod(responseFormat:=Script.Services.ResponseFormat.Json)> _
Public Function Data(ByVal id As Integer) As String
    Dim curSpecies As New Species(id)
    Return curSpecies.serialize
End Function

<WebMethod()> _
<Script.Services.ScriptMethod(responseFormat:=Script.Services.ResponseFormat.Json)> _
Public Function List() As String

    Return Species.list()
End Function

Fin De La Classe

OriginalL'auteur Kelly Gendron | 2009-04-03