2016-05-05 18 views
1

Ich habe eine ASP.NET-Web-API erstellt. Es scheint zu funktionieren, da ich den Pfad in einen Browser eingeben kann und Daten aus meinen Datenbanktabellen in einem XML-ähnlichen Format anzeigt. Wenn ich einen jQuery- oder AngularJS-Aufruf schreibe, um die Daten auf meiner MVC-Website abzurufen, erhalte ich Fehler. Nach viel Mühe habe ich entdeckt, dass (ich denke) jQuery oder AngularJS JSON-Objekte wollen, aber die Web-API muss XML-Objekte zurückgeben. Ich sage das, weil ich endlich einen Erfolg bekomme, wenn ich jQuery $ .ajax mit einem dataType: 'xml' aufruft. In meiner Web-API gebe ich die Liste meiner Datenobjekte zurück. Was ist der beste oder normale Weg dies zu strukturieren, damit die Daten korrekt zu den Client-AJAX-Anrufen passen?Zurückgeben von Web-API-Daten

+0

sollten Sie in der Lage sein, ein angeben Header mit einem Wert von "application/json" akzeptieren JSON ausdrücklich darum bitten. Siehe http://stackoverflow.com/questions/1145588/cannot-properly-set-the-accept-http-header-with-jquery –

Antwort

0

C#

[WebMethod] 
public string GetEmployeeData(int userId) 
{ 
    Dictionary<string, object> returnData = Dictionary<string, object>(); 

    using(SqlConnection conn = new SqlConnection(connString)) 
    { 
     //etc... etc... 
    } 

    var jsonSerializer = new JavaScriptSerializer(); 

    return jsonSerializer.Serialize(returnData); 
} 

Javascript:

$http.post('MyApp/GetEmployeeData', { userId: 1 }).then(function(response){ 
    $scope.myData = response.data; 
}).catch(function(response) { 
    //an error has occurred 
}); 
Verwandte Themen