6 var Polling = require('./polling');
7 var util = require('util');
16 * Ajax polling transport.
22 Polling.call(this, req);
26 * Inherits from Polling.
29 util.inherits(XHR, Polling);
32 * Overrides `onRequest` to handle `OPTIONS`..
34 * @param {http.IncomingMessage}
38 XHR.prototype.onRequest = function (req) {
39 if ('OPTIONS' === req.method) {
41 var headers = this.headers(req);
42 headers['Access-Control-Allow-Headers'] = 'Content-Type';
43 res.writeHead(200, headers);
46 Polling.prototype.onRequest.call(this, req);
51 * Returns headers for a response.
53 * @param {http.IncomingMessage} request
54 * @param {Object} extra headers
58 XHR.prototype.headers = function (req, headers) {
59 headers = headers || {};
61 if (req.headers.origin) {
62 headers['Access-Control-Allow-Credentials'] = 'true';
63 headers['Access-Control-Allow-Origin'] = req.headers.origin;
65 headers['Access-Control-Allow-Origin'] = '*';
68 return Polling.prototype.headers.call(this, req, headers);