2017-11-01 1 views
0

Ich versuche, einige Daten von Vue.js zu einem Back-End basierend auf Symfony mit dem folgenden Code POST.POST-Anfragen mit Axios senden keine Parameter

 updateQuestion : function() { 
      axios.post('/staff/question/api/' + this.id,{ 
        id : 'test', 
        name : 'sree' 
      }) 
       .then(response => { 

       console.log(response); 
      }) 
       .catch(error => { 
        console.log(error); 
       }) 
     }, 

Die Parameter, die ich an die POST-Anfrage angehängt habe, erreichen jedoch nicht meine Steuerung. Also habe ich das alternative Format für POST-Anfragen ausprobiert und trotzdem erreichen die Parameter den Controller nicht. Bitte sag mir, was los ist.

Alternate Format:

updateQuestion : function() { 
      axios({ 

       method : 'POST', 
       url : '/staff/question/api/' + this.id, 
       data: { 
        id : 'test', 
        name : 'sree' 
       } 

      }) 
       .then(response => { 

       console.log(response); 
      }) 
       .catch(error => { 
        console.log(error); 
       }) 
     }, 
+0

was bedeutet u von 'controller'? ist es eine Symfony-Sache? Wie ein Endpunkt? – LiranC

+0

Ja, der Endpunkt, an dem die POST-Anfrage bearbeitet wird. – Praveesh

Antwort

2

Ich stieß auch auf dieses Problem! Meine Post-Daten wurden in der Steuerung gefunden:

$request->getContent(); 

Mein vue Skript

onSubmit() { 
    axios.post('/test/post/data', { test: "test" }) 
    .then(response => { 
     console.log(response.data); 
    }); 
}, 

Mein Symfony-Controller:

public function postData(Request $request) 
{ 
    $data = $request->getContent(); 
    $data = json_decode($data, true); 

    return $this->json($data); 
} 
+0

Gefundene Anfragedaten in '' $ request-> getContent() '' '. Das war etwas Neues für mich. Gibt es eine Erklärung, warum die Anfragedaten in '' $ Anfrage -> Anfrage -> alle() '' 'fehlen? – Praveesh

0

Sein nichts falsch mit Ihrer Syntax. Aber überprüfe diese.id - wenn du keinen Fehler machst und diese.id nicht definiert ist oder so. Und wenn this.id in Ordnung ist, protokollieren Sie die Anfrage im Controller und suchen Sie nach Daten.

updateQuestion: function() { 
    axios 
    .post('/staff/question/api/' + this.id, { 
    id: 'test', 
    name: 'sree' 
    }) 
    .then(response => { 
    console.log(response) 
    }) 
    .catch(error => { 
    console.error(error) 
    }) 
} 
+0

this.id ist definiert und die Anforderung trifft den Endpunkt, der dem Wert der ID entspricht. Die Anforderungsparameter erreichen jedoch nicht den Endpunkt. – Praveesh