2017-06-16 2 views
0

Ich bin neu in Polymer und ich habe mit dem Posting mit Eisen-Ajax gekämpft. Dies ist mein CodePolymer Post Methode für Eisen Ajax

Meine Komponente:

<template> 
    <button type="submit" onclick="getPost" class="btn btn-default" id="register-form" style="margin-left: 35%; background-color: #008000; color: black; width: 30%;">Submit</button> 
    <iron-ajax 
     id="ajax" 
     method="POST" 
     body='[{"id": "1"}]' 
     url ="http://localhost/api/post.php" 
     on-response="success" 
     lastError="error" 
     debounce-duration="3000"> 
    </iron-ajax> 
</template> 
<script> 
    Polymer({ 
     is: 'register-form', 
     getPost:function(){ 
     this.$.ajax.generateRequest(); 
     }, 
     success:function(r){ 
     alert(r.detail.response); 
     }, 
     error:function(r){ 
     alert(r.detail.response); 
     } 
    }); 
</script> 

Meine PHP-Datei:

<?php 
    header('Access-Control-Allow-Origin: *'); 
    if ($_POST){ 
     echo $_POST['id']; 
    } 
?> 

Zunächst ich die PHP wollte eine json zurückzukehren, aber es hielt null.So bei der Rückkehr habe ich beschlossen, ändere es zu dem, um zu sehen, ob es die ID zurückgibt, die ich gepostet habe, aber es gab immer noch null zurück. Die GET-Methode scheint jedoch gut zu funktionieren. Und ich habe versucht, die Lösungen, die ich im Internet gefunden habe, aber es funktioniert immer noch nicht. Bitte helfen.

Antwort

0

Können Sie Ihr Körperattribut so ändern?

body='{"id": "1"}' 

... Wenn das obige nicht funktioniert, versuchen Sie eine berechnete Bindung. z.B.

body="[[_body()]]" 

Und

_body: function() { 
    return { 
     id: 1 
    }; 
} 
+0

Noch befestigen verwendet gibt null zurück. – James

+0

Dann versuchen Sie eine berechnete Bindung, https://www.polymer-project.org/2.0/docs/devguide/data-binding#annotated-computed –

+0

Verwenden Sie das Entwickler-Tool Ihres Browsers, um zu sehen, was in Ihrem POST-Anfragekörper –

0

die onclick="getPost" der Schaltfläche nicht Ihrer Komponente ruft getPost Methode, ersetzen Sie es durch on-click=... das ist die Konvention Polymer ein click Ereignis-Listener auf die Schaltfläche

+0

Hie gesetzt ist. Danke für das. Ich habe es repariert, aber ich bekomme immer noch nicht mein Echo. Ich entschied mich dafür, eine else-Anweisung in den PHP-Code einzufügen, um etwas anderes zu wiederholen, und anstelle der ID echote es, was in der else-Anweisung war. Die Bedingung ist nicht wahr, obwohl die Methode auf "posten" gesetzt ist – James

Verwandte Themen