2016-04-27 5 views
0

Ich habe eine Web-API erstellt, die von der Adresszeile meines Browsers funktioniert, aber wenn ich versuche, AngularJS oder jQuery Anrufe schreiben sie scheitern ohne Erklärung. Ich denke, ich habe nicht die richtige Route in der URL, oder vielleicht ist es ein JSON-Formatierungsproblem. Ich hatte eine frühere Version der Web API und die gleichen Aufrufe von AngularJS oder jQuery funktionierten. Aber in dieser früheren Version hatte ich die Aktion in der Route erklärt. Dann lese ich in einer RESTful Web API, es ist die beste Vorgehensweise, die Aktion in der Route wegzulassen und die Route von der HTTP-Methode abzugrenzen. Also habe ich die Web-API neu erstellt, um es auf diese Weise zu tun, aber jetzt kann ich die Verbindung auf der Clientseite nicht wiederherstellen. Kann jemand den Fehler in meiner URL-Route sehen? Sie können die URL in diesem Beispiel testen und die Daten in Ihrem Browser anzeigen.Wie schreibe ich Web API Anruf in AngularJS oder jQuery

Hinweis: Ich denke, ich habe dieses Problem gelöst. Ich muss einen JSON-Formatierer in meiner neuen Web-API hinzufügen. Es war in meiner ersten Version. Das ist der einzige Unterschied, den ich bisher gefunden habe.

  var sURL2 = "http://stevegaines.info/api/Securities?SecurityType=CASH"; 
 
      $http.get(sURL2) 
 
       .then(function (oData) 
 
       { 
 
        alert("oData = " + oData); 
 
        $scope.Securities = oData; 
 
       }, function (response) 
 
       { 
 
        alert("error = " + response.statusText); 
 
       });

+0

ich denke, was $ http ein Objekt senden soll, i http $ verwenden Sie immer wie ein: var req = { \t Methode: 'GET', \t url: \t ‚Ihre URL ' }; $ http (req) .then (Funktion successCallback (successData) {}, Funktion (errorCallback (errorData) {}); hm, Quellcode von Controller und Modell anzeigen. Und ja, json formatter. –

+0

Einfach hinzufügen Verwenden Sie die api-Adresse Ihres Endpunkts an die $ http.get() und nicht die gesamte URL: var sURL2 = "api/Securities? SecurityType = CASH"; –

+0

Welche Route ist in routeconfig definiert? –

Antwort

1

Ich habe endlich das zu arbeiten. Ich denke, das Problem lag in der Client-Javascript, aber ich habe auch die Web-API neu geschrieben, so bin ich mir nicht sicher. Eine Sache, die ich im Javascript geändert habe, war, dass ich die Methode jQuery .success verwendet habe, aber ich habe sie in .then geändert, weil jQuery .success ablehnt. Wenn ich das gemacht habe, musste ich die Dateneigenschaft von dataResponse verwenden. Einfach nur DataResponse wird nicht funktionieren. Ich denke, es ist eine andere Art von Objekt.

  $http.get(sURL2) 
 
       .then(function (dataResponse) 
 
       { 
 
        // this doesn't work 
 
        // $scope.Securities = dataResponse.data.records; 
 
        // this doesn't work 
 
        // $scope.Securities = dataResponse; 
 

 
        // this works 
 
        $scope.Securities = dataResponse.data; 
 
       }, function (response) 
 
       { 
 
        alert("error = " + response.statusText); 
 
       });

Verwandte Themen