jQuery ajax json réponse est de longueur indéfinie et des données incorrectes

Je suis en essayant d'attraper un objet dictionnaire de ce qui est converti en objet json à côté serveur (avec un bon contenu-type d'en-tête), mais pour une raison quelconque, même si je peux accéder à une partie des données, les autres parties ne se présentent pas et objet json en jquery a une longueur égale à 0.

Voici mon jquery appel:

$.ajax({
        type : "POST",
        url : cl._url,
        //data : 'text='+text,  
  data: "{}",
  contentType: "application/json; charset=utf-8",
        dataType : "json",
        error : function(XHR, status, error) {
            alert("There was an error processing the request.\n\n"+XHR.responseText);
        },
        success : function(json){
            if (!json.length) {
                alert('There are no incorrectly spelled words...'+json[0]+ '  ' + json.length);
            } else {
                //highlight bad words
            }
            cl.$container.html(html);   
            //execute callback function, if any
            (callback != undefined) && callback(); 
        }
    });

J'ai l'habitude de les obtenir la boîte d'alerte avec ce code, et json[0] imprime 99 comme prévu. Mais json.la longueur est "undefined". Ainsi, en un sens, le json retourné est juste, mais mon code ne le détecte pas et l'utiliser.

Quand je vais directement à mon ashx page où mes données json est imprimé sur l'écran, j'obtiens cet objet json:

{"id":1,"json":[5,10,15,20],"0":"99"}

Juste un exemple de la sortie json. Alors comment se json.la longueur n'est pas 3???

Mise à JOUR: j'ai Donc modifié mon asp.net code, à partir du Dictionnaire de la Liste, puis ajouté les mêmes valeurs. Et tout à coup, la longueur est de fonctionnement actuel. ?!?!?! Si les objets n'ont pas de longueurs dans le javascript?

  • Êtes-vous sûr il n'y a pas de contre-domaine des problèmes?
  • Nan, je suis en essais ce sur localhost et le serveur est en cours d'exécution sur l'hôte local IIS7. L'url utilisée est "../vérifier.ashx" (je peux voir le serveur retourne '99', alors, évidemment, ça fonctionne.)
  • if (!json.la longueur) est vrai si json.longueur = 0, indéfini ou vide. Et vous souhaitez alerter json[0] et json.longueur? Qui échouera si la longueur n'est pas défini
  • Voir, json.la longueur ne doit PAS être 0, indéfini, ou vide, parce que, évidemment json a données. Donc dans mon code ci-dessus, json[0] a données... mais json.la longueur n'est pas défini. Pas possible. Évidemment, quelque chose s'est mal passé. Si json[0] dispose de données json.la longueur doit être d'au moins 1. Ce code a été utilisé de cette façon dans un autre exemple des codes trop donc il ne devrait pas être de retour vrai pour !json.longueur.
InformationsquelleAutor Dexter | 2011-04-22