class XHR
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" constructor: (el) -> @element(el) @request = new XMLHttpRequest() @request.addEventListener('load', @completed) element: (el) -> @element = -> el completed: (e) => if e.target.responseText.length > 1 eval(e.target.responseText)(@element()) send: (src, method = 'GET', data) => @request.open(method, src) @request.setRequestHeader('accept', "*/*;q=0.5, #{@script}") @request.setRequestHeader('X-Requested-With', "XMLHttpRequest") @request.send(data) @Form: (element) => xhr = new XHR(element) data = new FormData(element) param = document.querySelector('meta[name=csrf-param]').getAttribute('content') token = document.querySelector('meta[name=csrf-token]').getAttribute('content') data.append(param, token) xhr.send(element.getAttribute('action'), element.getAttribute('method'), data) xhr
Ethereal.XHR = XHR