diff options
-rw-r--r-- | lib/server.js | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/server.js b/lib/server.js index 9809df7..a8c9973 100644 --- a/lib/server.js +++ b/lib/server.js @@ -15,8 +15,21 @@ module.exports = function Server (webtorrent, port) { server.on('request', function (req, res) { debug('onRequest') + // Allow CORS requests to specify arbitrary headers, e.g. 'Range', + // by responding to the OPTIONS preflight request with the specified + // origin and requested headers. + if (req.method === 'OPTIONS' && req.headers['access-control-request-headers']) { + res.setHeader('Access-Control-Allow-Origin', req.headers.origin) + res.setHeader('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') + res.setHeader( + 'Access-Control-Allow-Headers', + req.headers['access-control-request-headers']) + res.setHeader('Access-Control-Max-Age', '1728000') + return res.end() + } + if (req.headers.origin) - res.setHeader('access-control-allow-origin', req.headers.origin) + res.setHeader('Access-Control-Allow-Origin', req.headers.origin) var u = url.parse(req.url) if (u.pathname === '/favicon.ico') return res.end() @@ -34,8 +47,8 @@ module.exports = function Server (webtorrent, port) { function onTorrent (torrent) { var file = torrent.files[i] - res.setHeader('accept-ranges', 'bytes') - res.setHeader('content-type', mime.lookup(file.name)) + res.setHeader('Accept-Ranges', 'bytes') + res.setHeader('Content-Type', mime.lookup(file.name)) res.statusCode = 206 var range |