2016-03-22 4 views
0

Lernwinkel und in meiner App Ich habe eine lokale JSON-Datei, die ich $ http.get zum Lesen von Daten aus der Datei verwenden kann, aber jetzt ich möchte auch Daten an sie senden.

Zum Beispiel meiner JSON-Datei wie folgt aussieht:

{ 
    "name": "old name" 
} 

Und in meinem Controller Ich bin versucht, diesen Namen zu bearbeiten:

var data = $.param(
     {"name": "new data"} 
); 

    $http.post('testData.json', data) 
     .success(function (data,status) { 
     console.log("Post success"); 
     }) 
     .error(function() { 
     console.log("Post failed"); 
     }); 

Der Fehler wird in meinem Browser "kein Element gefunden" Konsole, wenn es die http.post versucht. Ich bin sicher, dass es auf die richtige Datei zeigt und dass die JSON-Datei tatsächlich da ist.

Irgendwelche Ratschläge?

+0

Warum veröffentlichen Sie in einer JSON-Datei? – epascarello

+0

Ich versuche tatsächlich, Daten auf einem echten REST-Endpunkt auf einem Server zu veröffentlichen, konnte aber nicht herausfinden, wie. Also dachte ich, es wäre einfacher zu lernen, wie man es richtig macht, indem man ein lokales Beispiel zum Laufen bringt. Da http.get zum Lesen der JSON funktioniert, stelle ich mir vor, warum http.post nicht? –

+0

Sie sollten auf einem lokalen Endpunkt und nicht in einer lokalen JSON-Datei veröffentlichen. – jdersen

Antwort

2

Vergessen Sie nicht, die JSON !:

angular.module('myApp', []) 
.controller('myCtrl', function ($scope, $http) { 
    $scope.hello = {name: "Boaz"}; 
    $scope.newName = ""; 
    $scope.sendPost = function() { 
     var data = $.param({ 
      json: JSON.stringify({ 
       name: "new data" 
      }) 
     }); 
     $http.post("/echo/json/", data).success(function(data, status) { 
      $scope.hello = data; 
     }) 
    }     
}) 

Sie können nicht auf eine lokale JSON-Datei schreiben sehnig - es funktioniert einfach nicht so. Das haben Sie in Ihrem Code getan. siehe unten.

Wie bereits erwähnt, haben Sie eine lokale JSON-Datei gepostet, die - wie gesagt - einfach nicht funktioniert.

Sie müssen an einen lokalen Endpunkt senden. Lesen Sie den Kommentar von @ jdersen zum OP, wenn Sie eine http://requestb.in/ verwenden, um Ihre Daten zu veröffentlichen ODER einen lokalen Endpunkt einzurichten, und versuchen Sie, einen Beitrag an diesen zu senden.

Working Fiddle

+0

Sie sollten wahrscheinlich erklären, dass Sie den Endpunkt nicht als '.json'-Datei festgelegt haben. – jdersen

+0

Ich machte eine Bearbeitung zur Klärung, es wartet auf Peer-Review. – jdersen

+0

Aprroved @jdersen. Ich bin nicht die beste Person in Klärung .. – amanuel2

Verwandte Themen