我有一张表格,我这样提交:
Redirect "/" "https://example.com/"
我知道我可以访问响应正文的方式:
form.addEventListener("iron-form-response", function(event) {
//How can I access response headers here?
});
form.submit();
但我想要的是服务器响应标头。我需要它,因为这个响应可能在标题中包含一些令牌,我必须将它存储在cookie中。
答案 0 :(得分:1)
event.detail
实际上是<iron-request>
,通过e.detail.xhr
公开基础XMLHTTPRequest
,允许您使用getResponseHeader(name)
作为特定标题:< / p>
_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>