从core-ajax中提取响应头

时间:2014-12-12 03:02:01

标签: ajax polymer

我只是想知道我是否可以从core-ajax聚合物元素中提取响应头?

下面是我正在测试的代码片段,我可以看到'detail'对象但是'xhr'对象里面没有响应头的详细信息,只有status和responseText / body等.console.log语句只是我试图找出响应头的位置。

<body>
<template id="main" is="auto-binding">
<paper-input-decorator label="Email" floatinglabel="true" isInvalid="{{invalid}}" error="Not an email">
  <input is="core-input" value="{{email}}"></input>
</paper-input-decorator>
<core-ajax id="ajax"
           auto="true"
           url="http://www.mocky.io/v2/548a185d479e7f5618c59c1b"
           method="POST"
           handleAs="json"
           response="{{response}}"
           body='{"email":"{{email}}"}'
           contentType="application/x-www-form-urlencoded"
           on-core-complete="{{responseHandler}}">
</core-ajax>
</template>
<script>
var main = document.querySelector("#main");
main.email = "raja@naresh"
main.responseHandler = function(event, detail, sender) {
    console.log(event);
    console.log(detail.xhr);
    console.log(sender);
    console.log(main.response);
}
</script>
</body>

我可以从core-ajax元素中提取响应头,如果不是我如何在没有jQuery的情况下执行此操作?任何帮助是极大的赞赏?感谢。

1 个答案:

答案 0 :(得分:1)

它可行。

看看以下内容:

<link rel="import" href="../bower_components/polymer/polymer.html" />
<link rel="import" href="../bower_components/core-ajax/core-ajax.html" />
<polymer-element name="x-ajax">
    <template>
        <core-ajax auto url="http://gdata.youtube.com/feeds/api/videos/?alt=json&q=chrome"
                   response="{{resp}}"
                on-core-response="{{handler}}"></core-ajax>
        <textarea value="{{resp}}"></textarea>
    </template>
    <script>
        Polymer({
            handler: function (event, detail, sender) {
                var header = detail.xhr.getResponseHeader('content-type');
            }
        });

    </script>
</polymer-element>

首先使用on-core-response 第二 - 使用XmlHttpRequest中的getResponseHeader方法获取所需的标题