Ich habe diese Funktion mir eine Liste von Managern zurückASP.NET AJAX Rückkehr JSON, aber nicht als JSON anerkannt
function getManagers() {
var jqxhr = $.ajax({
type: 'POST',
contentType: "application/json; charset=utf-8",
url: '/webservice.asmx/GetManagers',
dataType: 'json'
}).success(function(data) {
var options = '<option selected="selected" disabled="disabled">Select Manager</option>';
for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i].PostRef + '">' + data[i].Description + '</option>';
}
$('#ReceivingCellManager').html(options);
}).error(function(data) {
$('.ErrorText').html('Manager load failed please refresh page with F5');
$("#errormessage").dialog('open');
}).complete(function() {
});
}
wie man sehen kann ich JQuery bin mit und will eine Dropdown-Liste popoulate mit die zur Verfügung stehenden Manager
das Verfahren in meinem Dienst wie dieser
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void GetManagers()
{
using (var context = new ConcessionModel())
{
var rcm = Business.GetManager();
var serializer = new JavaScriptSerializer();
var response = rcm.Count() != 0
? serializer.Serialize(rcm)
: serializer.Serialize(new Error { Code = "500", Message = "Manager Retrieval Failed" });
this.Context.Response.Clear();
this.Context.Response.ContentType = "application/json";
this.Context.Response.Write(response);
}
}
sieht Wenn die Methode, die ich eine Antwort von 200 OK empfangen genannt wird und die Antwort enthält das JSON. Ich möchte, dass das Problem darin besteht, dass die Antwort nicht als JSON erkannt wird.
ich versucht habe
- datatype zum Ajax-Aufruf hinzugefügt, wie Sie oben
- Entfernen this.Context.Response.flush vom Ende der Antwort sehen können, diese geheilt Ein Fehler, den ich beim Anpassen der Header nach dem Senden bekommen habe.
- ein Antwortformat auf das Verfahren das Hinzufügen
- Hinzufügen eines Response.ContentType zum Context Diese haben alle versagt mir die geforderte Anerkennung des JSON zu bekommen. Jede Hilfe würde sehr geschätzt werden.
UPDATE: JSON-Format
{ "Beschreibung": "Daten", "Code": "Daten", "Referenz": "Daten"}
UPDATE JSON RESPONSE ich sehe komisch etwas in der Antwort meine Antwort als
[{"Description":"data","Code":"data","reference":"data"}]{"d":null}
ich bin nicht sicher, folgt, ist, was die d null Objekt ist
warum Sie WCF nicht verwenden (mit REST) und eine JSON-Antwort? ... alles selbst zu konvertieren ist wirklich schrecklich! –
Sind in Ihren erfolgreichen Daten JSON enthalten, und könnten Sie einen Beispieldump posten? :) –
@MarcoJohannesen danke für die Antwort, Nein der Erfolg feuert nicht, der Fehler tut. Ich habe gerade einen kleinen Test gemacht und der Fehler enthält auch die Daten nicht. – Deviland