2017-08-15 77 views
1

我有一個表格,我提出,像這樣:如何從鐵形式的聚合物響應頭

form.addEventListener("iron-form-response", function(event) { 
    //How can I access response headers here?      
});  

form.submit(); 

我知道我可以訪問響應體的方式:

event.detail.response 

但什麼我想要的是服務器響應頭。我需要它,因爲這個響應可能在標頭中包含一些標記,我必須將這些標記存儲在Cookie中。

回答

1

event.detail實際上是一個<iron-request>,這暴露底層經由e.detail.xhr,它允許使用getResponseHeader(name)特定報頭XMLHTTPRequest

_onResponse(e) { 
    const header = e.detail.xhr.getResponseHeader('X-Special-Header'); 
    ... 
} 

實施例:

<dom-module id="x-foo"> 
    <template> 
    <iron-form on-iron-form-response="_onResponse"> 
     <form method="post" 
      action="//httpbin.org/post"> 
     <label for="myName">My name</label> 
     <input type="text" id="myName" name="name"> 
     <button>Submit</button> 
     </form> 
    </iron-form> 
    </template> 

    <script> 
    class XFoo extends Polymer.Element { 
    static get is() { return 'x-foo'; } 

    _onResponse(e) { 
     console.debug('response header("Content-Type")', e.detail.xhr.getResponseHeader('Content-Type')); 
     console.debug('all response headers', e.detail.xhr.getAllResponseHeaders()) 
    } 
    } 
    customElements.define(XFoo.is, XFoo); 
    </script> 
</dom-module> 

demo

+0

謝謝你,先生! – Jacobian

+0

@Jacobian,沒問題:) – tony19