2017-08-15 80 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

相关问题