Avoid duplicate Access-Control-Expose-Headers

This commit is contained in:
Rob W
2013-01-05 11:01:00 +01:00
parent 792406d445
commit 407ba84a10

View File

@@ -51,8 +51,9 @@ function withCORS(headers, request) {
}
var exposedHeaders = headers['access-control-expose-headers'] || '';
if (exposedHeaders) exposedHeaders += ',';
exposedHeaders += 'location,x-request-url';
if (!/,\s*location\s*,/i.test(','+exposedHeaders+',')) exposedHeaders += ',location';
if (!/,\s*x-request-url\s*,/i.test(','+exposedHeaders+',')) exposedHeaders += ',x-request-url';
if (exposedHeaders.charAt(0) === ',') exposedHeaders = exposedHeaders.substr(1);
headers['access-control-expose-headers'] = exposedHeaders;
return headers;
@@ -130,7 +131,7 @@ var getHandler = exports.getHandler = function(options) {
} else {
// Actual request. First, extract the desired URL from the request:
var full_url, host, hostname, port, path, match;
match = req.url.match(/^\/(?:(https?:)?\/\/)?(([^\/?]+?)(?::(\d{0,5})(?=[\/?]|$))?)([\/?][\S\s]*|$)/i);
match = req.url.match(/^\/?(?:(https?:)?\/\/)?(([^\/?]+?)(?::(\d{0,5})(?=[\/?]|$))?)([\/?][\S\s]*|$)/i);
// ^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^
// 1:protocol 3:hostname 4:port 5:path + query string
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^