2017-06-02 9 views
0

Im stecken!Vue.JS Axios POST Anfrage .then Methode

Ich sende eine POST-Anfrage an einen Server über AXIOS von einer VUE-App. Alles funktioniert und der Server antwortet. Das Problem ist, dass die. Then-Methode nie aufgerufen wird. Wie kann das sein? Bonusfrage Wie machst du deine Anfragen von VUE?

Vielen Dank

methods:{ 
    customMethod1: function() { 

     //AXIOS 
     var config = { 
      headers: {'My Custom Header 1': 'Header-Value'} 
     }; 

     //POST request 
     axios.post('http://192.168.56.101:5000/post1', {name: 'Dave'}, config) 

     .then(function(response){ 
      alert("posted successfully"); 
     }); 

     }, 

} 
+0

Kann man den vollen Modulcode zeigen? Vielleicht rufen Sie nicht Methode –

+0

Vielen Dank für Ihre Antwort Kirill. Die Methode 'customMethod1' wird aufgerufen. Die Postanforderung wird ausgeführt und der Server antwortet. Nur 'dann 'schwarz kann ich nichts machen. – tr909

+1

Versuchen Sie einen 'catch' Callback hinzuzufügen, nur um sicher zu sein, dass er nicht fehlschlägt. – thanksd

Antwort

0

haben bestätigt, Sie über ein Tool wie Fiddler, dass der Server tatsächlich sendet eine Antwort? Es könnte sein, dass der Server niemals wirklich antwortet.

0

Ich habe gerade die Lösung gefunden, und ich weiß nicht, ob ich es mit der Person teilen sollte, die diese Frage gestellt hat: Er könnte zumindest den anderen antworten, die ihm helfen wollen. Wie ich viele Antworten finden Sie hier poste ich meine Lösung (vielleicht nicht die richtige Antwort, aber es funktioniert)

Es ist kein vue.js Problem, noch axios wird die .then Anweisung nur aufgerufen, wenn Sie etwas auf Rückkehr Serverseite.

Einige Code zu erklären:

Product.update(
     { 
      productName: req.body.productName, 
      productDesc: req.body.productDesc, 
      productOwner: 0, 
      productImage: req.body.productImage, 
      productState: req.body.ProductState, 
      productPrice: req.body.ProductPrice 
     }, 
     { 
      where: { 
       id: req.body.id 
      } 
     }) 
     .then(function (item) { 
      console.log("Product update " + item.id); 
      res.send({id: item.id});  
     }) 
     .catch(function (err) { 
      console.log("Product update error " + err); 
     }); 

die wichtige Linie ist hier:

res.send({id: item.id}); 

Wenn Sie nichts auf Server-Seite Ihrer .then an Client-Seite zurückkehren wird nicht aufgerufen.

lass es mich wissen, wenn es funktioniert aber +1 mir ;-)

+0

Leider war dies ein kurzer Test, den ich gemacht habe, und ich habe nicht das Setup, um Ihre Antwort zu testen. Ihre Antwort macht jedoch Sinn, da es einen Rückgabewert geben muss, um das Versprechen auszulösen. Ich wünschte, ich könnte diese Frage löschen ... – tr909