2016-06-01 6 views
0

私に問題があります.JsonデータでPUTメソッドを使用したいのですが、jsonではなくクエリ文字列パラメータにそれらのパラメータを渡しています。私の間違いを見つける。可能であれば、「アイアン・アヤックス」は使用しないでください。ポリマー鉄フォームPUTメソッドURLのパラメータを渡す

  <form is="iron-form" method="put" action="http://localhost:5000/users/" id="loginForm" content-type="application/json"> 
       <paper-input name="username" label="Username" required auto-validate></paper-input> 
       <paper-input name="password" label="Password" type="password" required auto-validate></paper-input> 
       <paper-button raised onclick="_submit(event)" disabled id="loginFormSubmit"> 
       <paper-spinner id="spinner" hidden></paper-spinner>Submit</paper-button> 
       <paper-button raised onclick="_reset(event)">Reset</paper-button> 
       <div class="output"></div> 
      </form> 
      <script> 
       loginForm.addEventListener('change', function(event) { 
       loginFormSubmit.disabled = !loginForm.validate(); 
       }); 
       function _submit(event) { 
       spinner.active = true; 
       spinner.hidden = false; 
       loginFormSubmit.disabled = true; 
       Polymer.dom(event).localTarget.parentElement.submit(); 
       } 
       function _reset(event) { 
       var form = Polymer.dom(event).localTarget.parentElement 
       form.reset(); 
       form.querySelector('.output').innerHTML = ''; 
       } 
       document.getElementById('loginForm').addEventListener('iron-form-submit', function(event) { 
       spinner.active = false; 
       spinner.hidden = true; 
       loginFormSubmit.disabled = false; 
       this.querySelector('.output').innerHTML = JSON.stringify(event.detail); 
       }); 
       document.getElementById('loginForm').addEventListener('iron-form-response', function(response) { 
       console.log(response); 
       }); 
      </script> 
polymer iron-form error

は、あなたの助けのすべてに感謝します!

答えて

1

iron-formは、POSTリクエストの本文に含まれるパラメータのみを含みます。最も簡単な回避策は、method="put"method="post"に変更し、iron-form-presubmit(シリアル化後に発生)のハンドラを追加して、メソッドをPUTに戻すことです。

form.addEventListener('iron-form-presubmit', function() { 
    this.request.method = 'put'; 
}); 

codepen

+0

あなたの答えをありがとうございました!これはうまくいきましたが、パラメータはヘッダーとURLにあります。あなたはそれを取り除く方法を知っていますか? :)また、なぜ2つのリクエストが発せられたのか知っていますか? http://imgur.com/nDn1tKn – gmolveau

+0

私はその動作を再現することはできません。私のテストでは、パラメータがURLから本文に移動されたことが示されています。私は1つのリクエストしか見ることができません。私はあなたのコードがあなたが提供したスニペットとは非常に異なって見えると思います。 – tony19

+0

ありがとうございました! :)このスニペットはポリマーの文書から来ます。 – gmolveau

関連する問題