2017-03-08 11 views
-3

Ein Klick auf die Schaltfläche, die im index.html Code angezeigt wird, gibt mir einen Fehler für den Aufruf "$ http.post", (die Webseite alarmiert mit 'Fehler!', So kann ich nicht speichern neue JSON-Datei, als ich an diesem Aufruf nicht bekommen kann.HTTP Beitrag funktioniert nicht

Was mache ich falsch?

index.html

<td><input id="clickMe" type="button" value="clickme" ng-click="doPost()" /></td> 

app.js

... 
$scope.doPost = function() 
         { 
          $http.post('/resource', {param1: 1, param2: 2} 
          ).success(function() 
           { 
            alert("OK!"); 
           }) 
           .error(function() 
           { 
            alert("Error!"); 
           }); 
         } 
... 

index.js (Server)

var fs = require('fs'); //File system module 
server.post('/resource', function(request, response) 
{ 
     //Every HTTP post to baseUrl/resource will end up here 
     console.info('Updated myJSON.json'); 
     fs.writeFile('myJSON.json', request.body, function(err) 
     { 
      if(err) 
      { 
       console.error(err); 
       return response.status(500).json(err); //Let the client know something went wrong 
      } 
       console.info('Updated myJSON.json'); 
       response.send(); //Let the client know everything's good. 
     }); 
}); 
+0

Was der Fehler ist? Ist die Anfrage an den Server, was Sie erwarten? Wie lautet die Antwort des Servers? – David

+0

Der Fehler ist, dass ich die Warnung bekomme: Fehler !. Es gibt keinen Erfolg der, wenn ich HTTP.post verwende Es sollte mich mit "OK!" Warnen. –

+1

Ja, Sie erhalten diese Warnung, weil Sie Code für * show * diese Warnung geschrieben haben. Allerdings ist "Error!" Ungefähr so ​​wenig hilfreich wie eine Fehlermeldung. Was ist der * tatsächliche Fehler *, den Ihr Code ignoriert? Ich vermute, dass ein Funktionsargument an diesen '.error()' Callback übergeben wird, was ist in diesem Argument? Wie lautet die tatsächliche Antwort des Servers auf der Registerkarte Netzwerk der Debugging-Tools des Browsers? – David

Antwort

1

Verwenden dann Funktion von $ http wie

$http.post('/resource', {param1: 1, param2: 2}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
    }); 
+0

Versuchte dies, noch nichts. –

+0

Dann Problem mit Ihrem Nodejs API, $ http funktioniert so, kein Problem mit $ http – Gaurav

Verwandte Themen