diff options
author | Yaroslav De La Peña Smirnov <yaros.rus_89@live.com.mx> | 2017-11-29 11:44:34 +0300 |
---|---|---|
committer | Yaroslav De La Peña Smirnov <yaros.rus_89@live.com.mx> | 2017-11-29 11:44:34 +0300 |
commit | 67fdec20726e48ba3a934cb25bb30d47ec4a4f29 (patch) | |
tree | 37fd9f4f0b0c20103e1646fc83021e4765de3680 /node_modules/engine.io/lib/transports/polling-xhr.js | |
download | spanish-checkers-67fdec20726e48ba3a934cb25bb30d47ec4a4f29.tar.gz spanish-checkers-67fdec20726e48ba3a934cb25bb30d47ec4a4f29.zip |
Initial commit, version 0.5.3
Diffstat (limited to 'node_modules/engine.io/lib/transports/polling-xhr.js')
-rw-r--r-- | node_modules/engine.io/lib/transports/polling-xhr.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/node_modules/engine.io/lib/transports/polling-xhr.js b/node_modules/engine.io/lib/transports/polling-xhr.js new file mode 100644 index 0000000..3562524 --- /dev/null +++ b/node_modules/engine.io/lib/transports/polling-xhr.js @@ -0,0 +1,69 @@ + +/** + * Module dependencies. + */ + +var Polling = require('./polling'); +var util = require('util'); + +/** + * Module exports. + */ + +module.exports = XHR; + +/** + * Ajax polling transport. + * + * @api public + */ + +function XHR (req) { + Polling.call(this, req); +} + +/** + * Inherits from Polling. + */ + +util.inherits(XHR, Polling); + +/** + * Overrides `onRequest` to handle `OPTIONS`.. + * + * @param {http.IncomingMessage} + * @api private + */ + +XHR.prototype.onRequest = function (req) { + if ('OPTIONS' === req.method) { + var res = req.res; + var headers = this.headers(req); + headers['Access-Control-Allow-Headers'] = 'Content-Type'; + res.writeHead(200, headers); + res.end(); + } else { + Polling.prototype.onRequest.call(this, req); + } +}; + +/** + * Returns headers for a response. + * + * @param {http.IncomingMessage} request + * @param {Object} extra headers + * @api private + */ + +XHR.prototype.headers = function (req, headers) { + headers = headers || {}; + + if (req.headers.origin) { + headers['Access-Control-Allow-Credentials'] = 'true'; + headers['Access-Control-Allow-Origin'] = req.headers.origin; + } else { + headers['Access-Control-Allow-Origin'] = '*'; + } + + return Polling.prototype.headers.call(this, req, headers); +}; |