2009-08-04 9 views
1

Ich habe eine Webmethod, die entlang der Linien von einer Hashtable durch eine jQuery Ajax-Aufruf zurückgibt:Rückkehr .net Hashtable von einem JQuery Ajax-Request

$.ajax({ 
    type: "POST", 
    url: webMethod, 
    data: {} 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(json){ 
     **alert(json.d);** 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
     alert(textStatus); 
    } 
}); 

Mein Problem ist, wenn ich es auf dem Server json bereitstellen. d ist undefiniert, aber stattdessen ist json die Hashtabelle. Auf meiner lokalen Box ist das gegenüberliegende json.d das hasable und nicht das json-Objekt.

Ich habe es zurück zu einem Punkt verfolgt, wo ich sehen kann, dass die zurückgegebene JSON-Zeichenfolge ist manchmal {d: {}} und auf dem Server seine {}.

Weiß jemand warum?

+0

Bitte zeigen Sie den serverseitigen Code an. Sagen Sie auch, welche .NET-Version Sie verwenden. –

Antwort

0

Stellt sich heraus, das hängt von der .net Framework-Version Ihre Verwendung ab. Wenn Sie 3.5 verwenden, fügen sie die Variable Json.d als Sicherheitsmaß ein. Wenn Sie Framework 3.0 verwenden, wird es nicht angezeigt.