blob: 7fec5072357802c029b31c9f275964d61d25393a [file] [log] [blame]
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
(function() {
'use strict';
Polymer({
is: 'gr-ajax',
/**
* Fired when a response is received.
*
* @event response
*/
/**
* Fired when an error is received.
*
* @event error
*/
hostAttributes: {
hidden: true
},
properties: {
auto: {
type: Boolean,
value: false,
},
url: String,
params: {
type: Object,
value: function() {
return {};
},
},
lastError: {
type: Object,
notify: true,
},
lastResponse: {
type: Object,
notify: true,
},
loading: {
type: Boolean,
notify: true,
},
},
ready: function() {
// Used for debugging which element a request came from.
var headers = this.$.xhr.headers;
headers['x-requesting-element-id'] = this.id || 'gr-ajax (no id)';
this.$.xhr.headers = headers;
},
generateRequest: function() {
return this.$.xhr.generateRequest();
},
_handleResponse: function(e, req) {
this.fire('response', req, {bubbles: false});
},
_handleError: function(e, req) {
this.fire('error', req, {bubbles: false});
},
});
})();